简体   繁体   English

按键取消设置多维数组

[英]Unset an multidimensional array by key

$series = array();  

while($row = mysql_fetch_assoc($result)) { 
            $series[$row["data_id"]][] = $row; 
        } 

The output from a print_r on $series yields for two example series: $seriesprint_r的输出产生两个示例系列:

Array ( 阵列(

[1] => Array ( [0] => Array ( [id] => 1 [data_id] => 1 [time_id] => 1 [data] => 1 ) [1] => Array ( [id] => 2 [data_id] => 1 [time_id] => 2 [data] => 3 ) ) [1] =>数组([0] =>数组([id] => 1 [data_id] => 1 [time_id] => 1 [数据] => 1)[1] =>数组([id] = > 2 [data_id] => 1 [time_id] => 2 [数据] => 3))

[2] => Array ( [0] => Array ( [id] => 6 [data_id] => 2 [time_id] => 1 [data] => 7 ) [1] => Array ( [id] => 7 [data_id] => 2 [time_id] => 2 [data] => 4 ) ) [2] =>数组([0] =>数组([id] => 6 [data_id] => 2 [time_id] => 1 [数据] => 7)[1] =>数组([id] = > 7 [data_id] => 2 [time_id] => 2 [数据] => 4))

My question: how do I unset the multidimensional array so it contains only [data] and none of the other keys? 我的问题:如何取消设置多维数组,使其仅包含[data]而不包含其他任何键? I still want $series to contain [1] and [2] but I do not want the respective sub-arrays to contain any other keys other than [data] . 我仍然希望$series包含[1][2]但我不希望各个子数组包含[data]以外的任何其他键。

In fact, since I am reducing the subarrays to contain a single key, I would really like to get rid of the subarrays altogether so that I have two arrays: 事实上,由于我正在减少子数组以包含单个键,我真的想完全摆脱子数组,以便我有两个数组:

$series[1] = array(1,3) and $series[2] = array(7,4) $ series [1] = array(1,3)和$ series [2] = array(7,4)

Try this : 尝试这个 :

$series = array();  

while($row = mysql_fetch_assoc($result)) { 
            $series[$row["data_id"]][] = $row['data']; 
        } 

I think you can loop in your array and build a new one keeping only data details 我认为你可以在你的数组中循环并构建一个只保留data细节的新数组

$array = array ('1' => array ( '0' => array ( 'id' => 1, 'data_id' => 1, 'time_id' => 1, 'data' => 1 ), '1' => array ( 'id' => 2, 'data_id' => 1, 'time_id' => 2, 'data' => 3 ), ),
'2' => array ( '0' => array ( 'id' => 6, 'data_id' => 2, 'time_id' => 1, 'data' => 7 ), '1' => array ( 'id' => 7, 'data_id' => 2, 'time_id' => 2, 'data' => 4 ) ));

$i= 0;
$n= 0;
$series = array();
foreach($array as $dato)
{
    $series[$i] = array();
    foreach($dato as $data)
    {
        foreach($data as $key => $value)
        {
            if($key == 'data')
            {
                $series[$i][$n] = $value;
                $n++;
            }
        }
    }
    $n = 0;
    $i++;
}
var_dump($series);

This will output 这将输出

array (size=2)
  0 => 
    array (size=2)
      0 => int 1
      1 => int 3
  1 => 
    array (size=2)
      0 => int 7
      1 => int 4    

Live demo 现场演示

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM