6

Как добавить элементы в пустой массив в PHP?

36

Я столкнулся с проблемой в PHP, связанной с определением и использованием массивов. Когда я создаю массив, например, следующим образом (не указывая его размер):

$cart = array();

Могу ли я просто добавлять элементы в него, используя следующий синтаксис?

$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;

Также меня интересует, есть ли в PHP метод для добавления элементов в массив, например, что-то вроде cart.add(13)? Почему в PHP используется такая конструкция для добавления элементов в массивы?

4 ответ(ов)

0

На основе моего опыта, подход, который будет хорош (даже лучший), когда ключи не важны, выглядит следующим образом:

$cart = [];
$cart[] = 13;
$cart[] = "foo";
$cart[] = $obj;

В этом примере элементы добавляются в массив $cart без указания ключей. Это позволяет PHP автоматически присваивать индекс (ключ) для каждого элемента, что делает код более чистым и удобным, если порядок элементов и сами значения важнее ключей.

0

В вашем коде происходит следующее:

  1. Вы создаете массив $cart и добавляете в него значения 11 и 15. Это выполняется правильно.
  2. Далее, в цикле for вы инициализируете массив $cart снова, и затем добавляете в него значения от 0 до 5.

Ключевой момент, который вы упомянули, заключается в том, что если вы вместо $cart[] = $i; напишете $cart = [$i];, то это приведет к тому, что массив будет перезаписываться на каждой итерации цикла. В итоге в массиве останется только последнее значение $i, то есть 5, так как на каждой итерации вы инициализируете $cart заново.

Вот скорректированный код с комментариями для ясности:

$cart = array();
for($i = 0; $i <= 5; $i++){
    $cart[] = $i;  // добавляем текущее $i в массив $cart
    // Если заменить на $cart = [$i];, массив будет содержать только последнее значение $i
}
echo "<pre>";
print_r($cart); // выводим массив
echo "</pre>";

Таким образом, ваш массив $cart в результате будет содержать значения от 0 до 5, как и ожидалось.

0

В приведённом вами коде на PHP создаётся и выводится массив с информацией о пассажирах, а также массив стран с их кодами и телефонными номерами.

В первой части кода создаётся ассоциативный массив $products_arr, в который добавляется массив с именем и электронной почтой пассажира. После этого массив выводится в виде JSON с отступами для удобства чтения.

$products_arr["passenger_details"] = array();
array_push($products_arr["passenger_details"], array("Name" => "Isuru Eshan", "E-Mail" => "[email protected]"));
echo "<pre>";
echo json_encode($products_arr, JSON_PRETTY_PRINT);
echo "</pre>";

Во второй части кода создаётся массив стран $countries с информацией о кодах и названиях стран. Затем с помощью цикла foreach происходит вывод информации о каждой стране.

$countries = array();
$countries["DK"] = array("code" => "DK", "name" => "Denmark", "d_code" => "+45");
$countries["DJ"] = array("code" => "DJ", "name" => "Djibouti", "d_code" => "+253");
$countries["DM"] = array("code" => "DM", "name" => "Dominica", "d_code" => "+1");
foreach ($countries as $country) {
    echo "<pre>";
    echo print_r($country);
    echo "</pre>";
}

Этот код правильно создаёт и отображает как пассажирские данные, так и информацию о странах. Если у вас есть конкретный вопрос или требуется доработка, пожалуйста, уточните!

0

Чтобы добавить элемент в ассоциативный массив на PHP, используйте следующий синтаксис:

// Добавляем элемент в массив
$countries["continent"] = "Europe";

В этом примере "continent" — это ключ, а "Europe" — значение, которое вы хотите ассоциировать с этим ключом. После выполнения этой строки в массиве $countries будет содержаться новая пара ключ-значение.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь