为了账号安全,请及时绑定邮箱和手机立即绑定

删除多维数组的索引以转换为许多一维数组 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 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信