Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何按不同的';名称';并将每个名称的关联值放入子数组中?_Php_Arrays - Fatal编程技术网

Php 如何按不同的';名称';并将每个名称的关联值放入子数组中?

Php 如何按不同的';名称';并将每个名称的关联值放入子数组中?,php,arrays,Php,Arrays,我在这方面做了很多研究,但似乎找不到一个有助于我的案例的例子 我有这样一个数组: array 0 => array 'name' => 'iPhone 5' 'data' => 7 1 => array 'name' => 'iPhone 5' 'data' => 5 2 => array 'name' => 'iPhone 5' 'd

我在这方面做了很多研究,但似乎找不到一个有助于我的案例的例子

我有这样一个数组:

array
  0 => 
    array
      'name' => 'iPhone 5'
      'data' => 7
  1 => 
    array
      'name' => 'iPhone 5'
      'data' => 5
  2 => 
    array
      'name' => 'iPhone 5'
      'data' => 4
  3 => 
    array
      'name' => 'Lumia 1020'
      'data' => 3
  4 => 
    array
      'name' => 'Lumia 1020'
      'data' => 3
  5 => 
    array
      'name' => 'Lumia 1020'
      'data' => 8
etc.
我试图实现的是一个具有如下分组的新数组:

array
  0 => 
    array
      'name' => 'iPhone 5'
      'data' => 
        array
          0 => 7
          1 => 5
          2 => 4
  1 => 
    array
      'name' => 'Lumia 1020'
      'data' => 
        array
          0 => 3
          1 => 3
          2 => 8
  2 => 
    array
      'name' => 'Samsung Galaxy S4'
      'data' => 
        array
          0 => 8
          1 => 5
          2 => 6

任何指点我都将不胜感激

像这样的东西可能有用

$output = array();

//loop over the input array
foreach($input as $phone){
    //get the name for our key
    $name = $phone['name'];
    $data = $phone['data'];
    //if the name doesn't exist in our output...
    if(!isset($output[$name])){
        //add it
        $output[$name] = array('name'=>$name, 'data'=>array($data));
    } else {
        //else, add data
        $output[$name]['data'][] = $data;
    }
}
//get the values from the array to re-index numerically
$newData = array_values($output);
//display
echo "<pre>".print_r($newData, true)."</pre>";
$output=array();
//在输入数组上循环
foreach($输入为$电话){
//获取我们的密钥的名称
$name=$phone['name'];
$data=$phone['data'];
//如果输出中不存在该名称。。。
如果(!isset($output[$name])){
//加上
$output[$name]=array('name'=>$name,'data'=>array($data));
}否则{
//否则,添加数据
$output[$name]['data'][]=$data;
}
}
//从数组中获取要以数字形式重新索引的值
$newData=数组_值($output);
//展示
echo“.print_r($newData,true)。”;

效果很好!感谢您的快速回复:)