簡體   English   中英

按鍵取消設置多維數組

[英]Unset an multidimensional array by key

$series = array();  

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

$seriesprint_r的輸出產生兩個示例系列:

陣列(

[1] =>數組([0] =>數組([id] => 1 [data_id] => 1 [time_id] => 1 [數據] => 1)[1] =>數組([id] = > 2 [data_id] => 1 [time_id] => 2 [數據] => 3))

[2] =>數組([0] =>數組([id] => 6 [data_id] => 2 [time_id] => 1 [數據] => 7)[1] =>數組([id] = > 7 [data_id] => 2 [time_id] => 2 [數據] => 4))

我的問題:如何取消設置多維數組,使其僅包含[data]而不包含其他任何鍵? 我仍然希望$series包含[1][2]但我不希望各個子數組包含[data]以外的任何其他鍵。

事實上,由於我正在減少子數組以包含單個鍵,我真的想完全擺脫子數組,以便我有兩個數組:

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

嘗試這個 :

$series = array();  

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

我認為你可以在你的數組中循環並構建一個只保留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);

這將輸出

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

現場演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM