У меня проблемы с тем, как работает массив.
$a = array("24","33","12");
$b = array("24","12");
$c = array_intersect($a,$b);
echo json_encode($c);
// {"0":"24","2":"12"}
Я ожидаю, что результат будет таким:
// ["24","12"]
Как я могу достичь этого результата?
echo json_encode(array_values($c));
output
["24","12"]
array_intersect Вычисляет пересечение массивов
<?php
$array1 = array(2, 4, 6, 8, 10, 12);
$array2 = array(1, 2, 3, 4, 5, 6);
var_dump(array_intersect($array1, $array2));
var_dump(array_intersect($array2, $array1));
?>
даст
array(3) {
[0]=> int(2)
[1]=> int(4)
[2]=> int(6)
}
array(3) {
[1]=> int(2)
[3]=> int(4)
[5]=> int(6)
}
. json_encode
возвращает строку, содержащую JSON-представление значения. Например
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
будет выводить
{"a":1,"b":2,"c":3,"d":4,"e":5}
Как мамта ответил, что вы можете использовать array_values
вернуть все значения массива и json_encode, как это
эхо json_encode(array_values($c))