在PHP

时间:2016-08-02 09:30:20

标签: php

我当前的数组就像第一个图像,我的目标是让它像第二个图像一样,它更像索引而不是第一个图像,如何将第一个图像重新索引到第二个图像?我已在下面附上我的代码。我的索引不是从0开始的原因是因为变量$ i总是递增,我不知道除此之外的任何其他方式,如果你们有其他方式,请教我,我喜欢学习。谢谢!

while($res = mysql_fetch_array($r))
{          
    $data[$res['id_barang']][$i] = $res['id_rpph_detil'];
    $i++;
}
echo "<pre>";
print_r($data);
echo "</pre>";

enter image description here

第一张图片

enter image description here

第二张图片

2 个答案:

答案 0 :(得分:1)

只需使用[]将项目推送到数组,如下所示:

while ($res = mysql_fetch_array($r))
{
    // Initialize the element, if it is the first item
    if (!isset($data[$res['id_barang']])) {
        $data[$res['id_barang']] = array ();
    }

    // Push
    $data[$res['id_barang']][] = $res['id_rpph_detil'];
}

答案 1 :(得分:0)

您不需要计数器变量,不需要迭代的提取调用。

结果对象(您应该更新代码以使用mysqli_函数)是可迭代的,并且可以像关联数组一样访问列数据。

$data = [];
foreach ($r as $row) {
    $data[$row['id_barang']][] = $row['id_rpph_detil'];
}

空括号语法告诉php使用新的索引/自动递增的键将新元素推入子数组。