Массив PHP в массив

Вопрос:

Я просмотрел поисковые запросы, но есть так много разных формулировок, что я не уверен, что я должен искать. Я также не могу думать, как это говорить, насколько это возможно, но здесь говорится:

Я хотел бы получить результат mysqli_fetch_assoc() и создать массив для каждой строки.

Пусть говорят, что результат имеет две строки:

[0][0] = Cheese
[0][1] = 1
[1][0] = Milk
[1][1] = 2

Как я могу отбросить их во вновь созданный массив, пусть говорят, называется $items?

Я надеюсь, что это будет:

$items = array(
array("Cheese",1),
array("Milk", 2)
);

Единственный код, который у меня есть до сих пор:

if($row = mysqli_fetch_assoc($q)) {
for($i=0;$i<$total;$i++) {
$items[$i][] = $row[$i];
}
}

Я не пробовал этого, но у меня есть это очень тревожное ощущение, что он определенно не будет работать.

Лучший ответ:

не будет ли это делать?

if($row = mysqli_fetch_assoc($q)) {
    foreach($row as $r) {
       $items[] = $r;
    }
}

Ответ №1
$new_arr = array();
while ($row = mysql_fetch_assoc($q))
{
foreach($row as $value){
$new_arr[][$value[0]] = $value[1];
}
}

Ответ №2

Я думаю, что это то, что вам нужно

while ($row = mysql_fetch_assoc($q))
{
$arr = [];
foreach ($row as  $value)
$arr[] = $value;
$items[] = $arr;
}
var_dump($items);

Ответ №3
mysqli_result::fetch_all()

“Возвращает массив ассоциативных или числовых массивов, содержащих строки результатов”

Я думаю, вы слишком много думаете. Двумерный массив уже представляет собой массив, содержащий массивы. В вашем случае результат fetch_all – это точно массив, содержащий “массив для каждой строки”,

Если вы не собираетесь хранить весь набор результатов, вы можете сделать следующее:

$rows[] = Array();
while ($row = mysqli_fetch_row() && $someCondition) $rows[] = $row;

но на самом деле вам будет лучше поставить LIMIT по запросу, если это возможно.

Оцените статью
TechArks.Ru
Добавить комментарий