null — Невозможно присвоить 0 массиву, если он был в ассоциации в php.

Вот немного кода php. 0 находится в ассоциативном массиве явно. Если я попытаюсь вставить его в другой, он не будет назначен. Единственный способ, которым я знаю, как обойти это, это явно проверить, чтобы это было 0, используя ===, Это единственный способ?

<?php
$vars['one'] = '31234';
$vars['two'] = 'sldf';
$vars['three'] = 1 - 1;
$return_array = [];
foreach ($vars as $key => $value){
echo "---------------Just value<br>";
var_dump($value);
echo "<br>";
$value != '' ? ($return_array[$key] = $value) : null;
echo "---------------array of key<br>";
var_dump($return_array[$key]);
echo "<br>";
}
?>

Я получил эту хорошую вещь обратно.

---------------Just value
string(5) "31234"---------------array of key
string(5) "31234"---------------Just value
string(4) "sldf"---------------array of key
string(4) "sldf"---------------Just value
int(0)
---------------array of key
NULL

В любом случае лучше, чем if ($key === 0) { // stuff }?

0

Решение

Вы используете «слабое сравнение» при выполнении $value != '', Это также оценивается как ложное для 0. Смотрите таблицу для свободного сравнения Вот.

Если вы использовали $value !== '' вместо этого он вставил бы 0 в массив.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]