2016-08-02 3 views
-1

мой текущий массив похож на первое изображение, моя цель - получить его, как второе изображение, которое больше индексируется, а не первое, как переиндексировать первое изображение в что-то вроде второго изображения? Я уже приложил свой код ниже. Причина, по которой мой индекс не начинается с 0, состоит в том, что переменная $ i всегда увеличивается, и я не знаю другого пути, кроме этого, если вы, ребята, имеете другой путь, пожалуйста, научите меня, я люблю учиться. Благодаря!Удалите ненужный массив и многоадресный массив reindex на PHP

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

второе изображение

+0

Вопрос не ясен, Каков ваш желаемый результат? – Mickey

+0

'array_walk' и' array_values'? – PeeHaa

+0

@PeeHaa уже пытается с array_values, но массив уровня 1 меняется, а не 2-й уровень –

ответ

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']; 
} 
+0

Этот объект близок к моей цели, но почему существует ошибка смещения: Примечание: Неопределенное смещение: 404 Примечание: Неопределенное смещение: 595 Примечание: Неопределенное смещение: 632 @erki A –

+0

@AlexYamin Исправлено, заменив is_array () с isset() –