You need to enable JavaScript to run this app. PHP如何正确遍历neo4j返回的Map列表/数组以提取所需字段值
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何正确遍历neo4j返回的Map列表/数组以提取所需字段值

解决方法

Laudis Neo4j PHP 客户端执行Cypher查询后返回的结果集是可直接遍历的集合对象,不需要做JSON解码,你可以按以下两种方式遍历取字段:

方式1:直接遍历结果集(推荐)

<?php
require ('vendor/autoload.php');
$client = Laudis\Neo4j\ClientBuilder::create()
    ->addHttpConnection('backup', 'http://neo4j:foodisgood56@localhost')
    ->addBoltConnection('default', 'bolt://neo4j:foodisgood56@localhost')
    ->setDefaultConnection('default')
    ->build();
    
$records = $client->run('MATCH (n:Dept1) RETURN n LIMIT 25');

foreach ($records as $record) {
    // 提取查询返回的别名为n的节点属性数组
    $deptInfo = $record->get('n');
    
    // 输出对应字段
    echo '部门编号:' . $deptInfo['deptno'] . PHP_EOL;
    echo '部门名称:' . $deptInfo['dname'] . PHP_EOL;
    echo '所在位置:' . $deptInfo['location'] . PHP_EOL;
    echo '--------------------------' . PHP_EOL;
}

方式2:先转成普通数组再遍历

如果习惯用PHP原生数组处理,可调用集合的toArray()方法转换后再操作:

$records = $client->run('MATCH (n:Dept1) RETURN n LIMIT 25');
$recordArray = $records->toArray();

foreach ($recordArray as $item) {
    $deptInfo = $item->get('n');
    echo '部门编号:' . $deptInfo['deptno'] . PHP_EOL;
    echo '部门名称:' . $deptInfo['dname'] . PHP_EOL;
    echo '所在位置:' . $deptInfo['location'] . PHP_EOL;
    echo '--------------------------' . PHP_EOL;
}

注意

你之前注释的代码无法生效的原因是$client->run()返回的不是JSON字符串,不需要调用json_decode处理,直接遍历结果集即可。


内容的提问来源于stack exchange,提问作者Nancy Moore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 00:15:05