2012-04-11 11 views
0

多分私はここに何かがないのですが、array_diff()は配列の最後に空のkesysを残しているようです。私はこれで残されています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] => 
) 

私が理解から、これは単に[1を残して、([0]の設定を解除する必要がありますが正しくありません])。私は$term_ids = array_values($term_ids);を使って正しいキーを作っていますが、これは必要ではないはずですので、私より多くを知っている人が明らかにできるかどうか疑問に思っていますか?

+2

まず、あなたは誤字があります($ term_id/s) –

+2

これは、上記の修正が行われたときにうまくいきます:1) '$ terms_ids'に' array'キーワードが必要です。 'array (0 => '1行目、2)' $ term_id'は2行目で '$ term_ids'(複数形)である必要があります。 – Josh

答えて

1

[、[1] => 16私は

<?php 

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

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

var_dump($arr3); 

>

を試してみましたが、私が得ました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 
)