猿问

删除多维数组的索引以转换为许多一维数组 PHP 的列表

为模糊的提问道歉,我是相当新的。我一直在搜索,但似乎找不到适合我的情况的解决方案。


我正在尝试将循环 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  ) ;

已经很晚了,我的大脑在躲避我,非常感谢任何指点。


编辑:将对此进行再调度,事实证明我的问题是格式化问题,在将输出保存到文件的同时将其分配为变量时我没有转义 ($) 符号。谢谢大家的回复,让我直截了当


波斯汪
浏览 86回答 2
2回答

鸿蒙传说

结果和预期结果基本上是一样的,因为正如@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)

白板的微信

做这个:$data = [];$i = 0;while ($row = mysqli_fetch_assoc($sql)) {    foreach( $row as $field => $value) {        $data[$i][$field] = $value:    }    $i++;}print_r($data)
随时随地看视频慕课网APP
我要回答