[英]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.