PHP如何从多维数组中提取id字段合并为一维无键值对数组
错误原因
你现有代码的问题出在两处:
- 变量名不匹配:foreach 循环中你将遍历得到的子数组赋值给了
$item变量,但实际取值时误用了未定义的$term变量,自然无法读取到有效值 - 取值方式错误:你提供的
$array是多维数组结构,不是对象集合,不能使用对象运算符->取值,需要用数组的键访问语法[]
修复方案
方案1:修改原有foreach逻辑
修正变量名和取值方式即可正常运行:
$ids = []; if ( $array ) { foreach ( $array as $item ) { $ids[] = $item['id']; } } print_r($ids);
方案2:使用PHP内置函数更简洁实现
PHP 5.5及以上版本支持array_column函数,可以直接提取二维数组中指定键的所有值,一行代码即可完成需求:
$ids = array_column($array, 'id'); print_r($ids);
两种方案运行后都能得到你需要的结果:Array ( [0] => 11 [1] => 12 [2] => 10 ),为无自定义键的索引数组。
内容的提问来源于stack exchange,提问作者CyberJ
相关产品推荐
相关产品推荐

