Array Push with key возвращает ошибку

0

Я пытаюсь построить некоторые объекты сына из запроса mysqli. Я хочу создать один массив, который будет содержать много массивов. Но я получаю некоторую ошибку

Error: [12-Mar-2015 02:56:23 America/New_York] PHP Warning:  array_push() expects parameter 1 to be array, null given in /home/bud/public_html/cp/function/receivable.php on line 18

вот мой код:

<?php
require_once('../configuration.php');
$con=new mysqli($hostname,$dbusername,$dbpass,$dbname);
if (mysqli_connect_errno($con)) {
    die('The connection to the database could not be established.');
}
if(isset($_POST['date'])){
  $date=$_POST['date'];
  $receivable= array();
  if($date==="All"){
  $q1="SELECT * FROM orders WHERE order_status='completed' AND due > '0.00' ORDER BY id DESC";
  }else{
  $q1="SELECT * FROM orders WHERE DATE(time) = '$date' AND order_status='completed' AND due > '0.00' ORDER BY id DESC";
  }
  $result=$con->query($q1);
  while($row=$result->fetch_array()){
  //$receivable['orders'][]=array($row);
  array_push($receivable['orders'][], array('id' => $row['id'], 'due' => $row['due'] ));
}
  echo json_encode($receivable);


}  
?>

Как вставить массив с ключом в $receivable['orders'][]; Я хотел бы создать больше массива, например $receivable['client'][]; и хотел бы нажать переменную с ключами на $ receivable ['orders'] [], например id =>, due =>, paid =>,

Теги:
arrays
mysqli

3 ответа

2

Вы можете просто внести некоторые изменения в свой код, и он будет работать.

$receivable['orders'][]= array('id' => $row['id'], 'due' => $row['due'] );

Это даст вам числовой массив как array_push();

0

Это должно быть сделано таким образом... Параметр 1 должен быть массивом.

// define array
$receivable['orders'] = array();

array_push($receivable['orders'], array('id' => $row['id'], 'due' => $row['due'] ));
  • 0
    я попробовал ваши строки, но все равно он возвращает PHP Warning: array_push() expects parameter 1 to be array, null given in /home/businesscraftsbd/public_html/cp/function/receivable.php on line 21
  • 0
    Я должен сделать правку, пожалуйста, проверьте это.
0

Как и в многомерном массиве, запись представляет собой другой массив, укажите индекс этого значения в array_push:

array_push ($ receivable ['orders'], array ('id' => $ row ['id'], 'due' => $ row ['due']));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню