亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

PHP
波斯汪 2022-12-23 13:18:52
為模糊的提問道歉,我是相當新的。我一直在搜索,但似乎找不到適合我的情況的解決方案。我正在嘗試將循環 mysql 查詢的輸出存儲為要在循環外使用的變量,就像我在循環內打印結果一樣。我試圖節省開銷,因為我繼承了一個經常使用這個大型數據集的函數,并且我試圖通過保存輸出而不是每次查詢數據庫來減少對數據庫的調用。目前我有 -$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 =Array ( [id] => 1 [name] => john [age] => 44  ) Array ( [id] => 2 [name] => paul [age] => 30  )Array ( [id] => 3 [name] => george [age] => 25  ) ;已經很晚了,我的大腦在躲避我,非常感謝任何指點。編輯:將對此進行再調度,事實證明我的問題是格式化問題,在將輸出保存到文件的同時將其分配為變量時我沒有轉義 ($) 符號。謝謝大家的回復,讓我直截了當
查看完整描述

2 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

結果和預期結果基本上是一樣的,因為正如@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']將是約翰,價值$data[1]['name']將是保羅等。


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


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


不可能根據需要存儲值,但當然可以根據需要輸出:


//$data_value is an array in every row 

foreach($data as $data_value) {

    print_r($data_value);

}

這將產生輸出:


Array

(

    [id] => 1

    [name] => john

    [age] => 44

)

Array

(

    [id] => 2

    [name] => paul

    [age] => 30

)

Array

(

    [id] => 3

    [name] => george

    [age] => 25

)


查看完整回答
反對 回復 2022-12-23
?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

做這個:


$data = [];

$i = 0;

while ($row = mysqli_fetch_assoc($sql)) {

    foreach( $row as $field => $value) {

        $data[$i][$field] = $value:

    }

    $i++;

}


print_r($data)


查看完整回答
反對 回復 2022-12-23
  • 2 回答
  • 0 關注
  • 106 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號