簡體   English   中英

刪除多維數組的索引以轉換為多個一維 arrays PHP 的列表

[英]Remove indexes of multidimensional array to convert to a list of many one dimensional arrays PHP

為模糊的提問道歉,我是相當新的。 我一直在尋找,但似乎找不到適合我的方案的解決方案。

我正在嘗試將循環 mysql 查詢的 output 存儲為要在循環外使用的變量,就像我要在循環內打印結果一樣。 我試圖節省開銷,因為我繼承了經常使用這個大型數據集的 function,並試圖通過保存 output 而不是每次都查詢數據庫來減少對數據庫的調用。

目前我有 -

$data = array();
$sql = mysqli_query($con, SELECT * FROM my_table);
while($row = mysqli_fetch_assoc($sql)){
  $data[] = $row;
}
print_r($data);

這導致:

Array ( 
[0] => Array ( [id] => 1 [name] => john [age] => 44  ) 
[1] => Array ( [id] => 2 [name] => paul [age] => 30  )
[2] => Array ( [id] => 3 [name] => george [age] => 25  )
)

但我需要一個像這樣的 output,即沒有頂級索引......

$output =

Array ( [id] => 1 [name] => john [age] => 44  ) 
Array ( [id] => 2 [name] => paul [age] => 30  )
Array ( [id] => 3 [name] => george [age] => 25  ) ;

已經很晚了,我的大腦躲開了我,非常感謝您的任何指點。

編輯:將對此進行調度,結果發現我的問題是格式化問題,在將 output 保存到文件時將其分配為變量時我沒有轉義 ($) 符號。 謝謝大家的回復,讓我直截了當

結果和預期結果基本相同,因為正如@Nick 指出的那樣,您需要擁有頂級鍵(0,1,2)。 (否則,您將如何確定哪個 id 屬於 john、paul 和 george?)

根本不可能存儲這樣的數組:

Array ( [id] => 1 [name] => john [age] => 44  ) 
Array ( [id] => 2 [name] => paul [age] => 30  )
Array ( [id] => 3 [name] => george [age] => 25  )

它必須像這樣存儲:(使用頂級鍵(在本例中:0,1 和 2))

Array ( 
    [0] => Array ( [id] => 1 [name] => john [age] => 44  ) 
    [1] => Array ( [id] => 2 [name] => paul [age] => 30  )
    [2] => Array ( [id] => 3 [name] => george [age] => 25  )
)

$data[0]['name']的值是 john, $data[1]['name']的值是 paul 等等。

如果您引用$data[0]它包含數組: Array ( [id] => 1 [name] => john [age] => 44 )

如果您引用$data[1]它包含數組: Array ( [id] => 2 [name] => paul [age] => 30 )

無法根據需要存儲值,但當然可以根據需要使用 output:

//$data_value is an array in every row 
foreach($data as $data_value) {
    print_r($data_value);
}

這將產生 output:

Array
(
    [id] => 1
    [name] => john
    [age] => 44
)
Array
(
    [id] => 2
    [name] => paul
    [age] => 30
)
Array
(
    [id] => 3
    [name] => george
    [age] => 25
)

做這個:

$data = [];
$i = 0;
while ($row = mysqli_fetch_assoc($sql)) {
    foreach( $row as $field => $value) {
        $data[$i][$field] = $value:
    }
    $i++;
}

print_r($data)

暫無
暫無

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

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