2012-04-11 10 views
0

Vielleicht fehle ich hier etwas, aber array_diff() scheint mich leere kesys am ende eines arrays verlassen.array_diff() leaving leere array keys

Mit diesem Beispiel Daten -

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

ich mit diesem nach links Bin -

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

Von dem, was ich verstehe, das ist falsch ([0] sollte nicht gesetzt sein, so dass nur [1 ]). Ich benutze $term_ids = array_values($term_ids); nach, um die Schlüssel richtig zu machen, aber es scheint, dass dies nicht notwendig sein sollte, also frage ich mich, ob jemand, der mehr als ich weiß, klären könnte?

+2

Zuerst haben Sie einen Tippfehler da oben ($ term_id/s) –

+2

Es funktioniert für mich, wenn die folgenden Korrekturen zu den obigen gemacht werden: 1) '$ terms_ids' erfordert das' Array' Schlüsselwort, so dass 'Array (0 => 'in Zeile 1 und 2)' $ term_id' muss in der 2. Zeile '$ term_ids' (Plural) sein. – Josh

Antwort

1

I

versucht
<?php 

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

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

var_dump($arr3); 

>

und ich habe [1] => 16 [? 3] => 18.

Dies scheint tatsächlich das beabsichtigte Ergebnis zu sein, wie das Beispiel auf zeigt.

2

kann nicht reproduzieren:

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

Ausgang:

Array 
(
    [1] => 270 
)