查找与阵列相同的密钥的所有项目,并在一个新的

问题描述:

结合他们让我们假设我们有一个多维数组象下面这样:查找与阵列相同的密钥的所有项目,并在一个新的

$obj = array 
(
array("carName"=>"Volvo","carColor"=>"Red", "carSpeed"=> "100 mph"), 
array("carName"=>"Volvo","carColor"=>"Blue", "carSpeed"=> "100 mph"), 
array("carName"=>"BMW","carColor"=>"White", "carSpeed"=> "120 mph"), 
array("carName"=>"BMW","carColor"=>"Grey", "carSpeed"=> "120 mph") 
); 

我怎么能在一个单一的阵列组合每"carName""carColor"所以我得到:

$newObj = array 
(
array("carName"=>"Volvo","carColor"=> array("Red", "Blue"), "carSpeed"=> "100 mph"), 
array("carName"=>"BMW","carColor"=> array("White", "Grey"), "carSpeed"=> "120 mph") 
); 
+1

如果您尝试过任何操作,请分享? – C2486

+0

我有种尝试for循环来存储carName每次它改变,但它根本不工作,猜我不够熟悉写这种代码。虽然它看起来很基本... –

如果你的名字与车名的每个阵列(不知道的事项),你可以这样来做

foreach($obj as $x=>$y){ 
$new[$y['carName']]['carName']=$y['carName']; 
$new[$y['carName']]['carColor'][]=$y['carColor']; 
$new[$y['carName']]['carSpeed']=$y['carSpeed']; 
} 
+0

这样做的工作!这样一个基本的东西。 –

+0

可以修改为不插入双数到数组中? –

+0

是更改$ new [$ y ['carName']] ['carColor'] [] = $ y ['carColor'];到$ new [$ y ['carName']] ['carColor'] [$ y ['carColor']] = $ y ['carColor']; –