PHP如何将包含animal和car的关联数组拆分为两个索引数组?
拆分PHP关联数组为独立索引数组的解决方案
嘿,这个需求其实PHP里有超便捷的内置函数能搞定,完全不用费劲手动写循环!针对你给出的关联数组,我们可以用array_column()函数快速提取出animal和car对应的独立索引数组。
首先先定义好你的原始关联数组:
$originalArray = [ ["animal"=>"lion", "car"=>"honda"], ["animal"=>"rabbit","car"=>"BMW"], ["animal"=>"rat", "car"=>"Toyota"], ["animal"=>"mouse", "car"=>"Suzuki"], ["animal"=>"horse", "car"=>"mercedes"], ["animal"=>"dog", "car"=>"Jaguar"], ["animal"=>"cat", "car"=>"Audi"] ];
核心解决方案(推荐)
直接用array_column()函数提取指定列,一行代码搞定一个数组:
// 提取所有animal值到索引数组 $animal = array_column($originalArray, 'animal'); // 提取所有car值到索引数组 $car = array_column($originalArray, 'car');
array_column()的作用就是从多维数组中返回指定列的所有值,第一个参数是目标多维数组,第二个参数是要提取的关联键名,执行后直接就能得到你想要的纯索引数组。
兼容低版本PHP的备选方案
如果你的项目需要兼容PHP 5.5以下的版本(array_column()是PHP 5.5才引入的),可以用手动循环的方式实现:
$animal = []; $car = []; foreach ($originalArray as $item) { $animal[] = $item['animal']; $car[] = $item['car']; }
验证结果
你可以用print_r()输出看看结果:
print_r($animal); print_r($car);
输出的结果就是你需要的两个独立索引数组啦:
Array ( [0] => lion [1] => rabbit [2] => rat [3] => mouse [4] => horse [5] => dog [6] => cat ) Array ( [0] => honda [1] => BMW [2] => Toyota [3] => Suzuki [4] => mercedes [5] => Jaguar [6] => Audi )
内容的提问来源于stack exchange,提问作者Ferdinand
相关产品推荐
相关产品推荐

