2012-04-11 2 views
0

Может быть, мне что-то не хватает, но array_diff(), кажется, оставляет меня пустой кеши в конце массива.array_diff(), оставляющий пустые ключи массива

В этом примере данные -

$term_ids = array(0 => 242, 1 => 270); 
$term_ids = array_diff($term_ids, array(242, 243, 266, 267, 268, 269)); 

Я Оставшись с этим -

Array 
(
    [1] => 270 
    [0] => 
) 

Из того, что я понимаю, это неверно ([0] должна быть снята с охраны, оставляя только [1 ]). Я использую $term_ids = array_values($term_ids);, чтобы сделать ключи правильными, но кажется, что это не обязательно, поэтому мне интересно, может ли кто-то, кто знает больше меня, прояснить?

+2

Во-первых, у вас там опечатка ($ term_id/s) –

+2

Это работает для меня, когда сделаны следующие исправления: 1) '$ terms_ids' требует ключевое слово' array', так что 'array (0 => 'в строке 1 и 2)' $ term_id' должно быть '$ term_ids' (множественное число) во второй строке. – Josh

ответ

1

Я попытался

<?php 

$arr1 = array(15, 16, 17,18); 
$arr2 = array(15, 17); 

$arr3 = array_diff($arr1, $arr2); 

var_dump($arr3); 

>

и я получил [1] => 16 [? 3] => 18.

Это на самом деле кажется предполагаемым результатом, как показано на примере на the offical page.

2

Невозможно воспроизвести:

$term_ids = array(0 => 242, 1 => 270); 
$term_ids = array_diff($term_ids, array(242, 243, 266, 267, 268, 269)); 
print_r($term_ids); 

Выход:

Array 
(
    [1] => 270 
) 

 Смежные вопросы

  • Нет связанных вопросов^_^