PHP вставляет новые данные в данный массив - PullRequest
0 голосов
/ 26 апреля 2018

Может показаться, что мне трудно понять, как работает array. Итак, результат, я не могу работать над этим вопросом.

foreach($results as $key => $value){
    $product_key = array(
      'key' => $key
    );
    array_push($results, $product_key);
}

var_dump($results); exit;

Ожидаемый результат

array(2) {
  [0]=>
  object(stdClass)#21 (4) {
    ["items_id"]=>
    string(1) "1"
    ["item_name"]=>
    string(6) "laptop"
    ["price"]=>
    string(5) "20000"
    ["quantity"]=>
    string(2) "10"
    ["key"]=>
    int(0)
  }
  [1]=>
  object(stdClass)#22 (4) {
    ["items_id"]=>
    string(1) "2"
    ["item_name"]=>
    string(10) "smartphone"
    ["price"]=>
    string(5) "10000"
    ["quantity"]=>
    string(3) "200"
    ["key"]=>
    int(1)
  }

Неожиданный вывод

array(4) {
  [0]=>
  object(stdClass)#21 (4) {
    ["items_id"]=>
    string(1) "1"
    ["item_name"]=>
    string(6) "laptop"
    ["price"]=>
    string(5) "20000"
    ["quantity"]=>
    string(2) "10"
  }
  [1]=>
  object(stdClass)#22 (4) {
    ["items_id"]=>
    string(1) "2"
    ["item_name"]=>
    string(10) "smartphone"
    ["price"]=>
    string(5) "10000"
    ["quantity"]=>
    string(3) "200"
  }
  [2]=>
  array(1) {
    ["key"]=>
    int(0)
  }
  [3]=>
  array(1) {
    ["key"]=>
    int(1)
  }
}

1 Ответ

0 голосов
/ 26 апреля 2018

Вы выдвигаете новое значение (которое является массивом) в конец существующего массива, чего вы тогда ожидаете?

Если вы хотите изменить текущее целочисленное значение массива, используйте этот подход:

foreach($results as $key => $value) {
    // use `->` as `$value` is object
    $value->key = $key;
}

var_dump($results); exit;
...