$s1=1;
$s2=7;
$s3=8;
$r=array("$s1","$s2","$s3");
$rr=array("1","2","3","4","5","6","7","8","9","10");
$rrr=array_diff($r,$rr);
echo $rrr[0];
我希望得到的結果一樣2中得到這兩個陣列和回聲和array_diff兩個不同陣列的價值,但我得到的錯誤。有人在這裏幫忙。
$s1=1;
$s2=7;
$s3=8;
$r=array("$s1","$s2","$s3");
$rr=array("1","2","3","4","5","6","7","8","9","10");
$rrr=array_diff($r,$rr);
echo $rrr[0];
我希望得到的結果一樣2中得到這兩個陣列和回聲和array_diff兩個不同陣列的價值,但我得到的錯誤。有人在這裏幫忙。
documentation的用於array_diff
說,它
比較ARRAY1對一種或多種其它陣列,並返回ARRAY1的 值中不存在任何其它陣列。
你array1
爲$r
,和你的other array
爲$rr
。
$r
基本上等同於
我們可以清楚的看到,在$r
是不出現在$rr
沒有值。 ("1"
,"7"
,"8"
都在$rr
)
因此,您將收到一條E_NOTICE
當您嘗試訪問$rrr[0]
,因爲$rrr
是空的。
也許你的意思是reverse the order of the two arguments。
$rrr = array_diff($rr, $r);
由於Loop Me指出,array_diff
does not reorder your indices。
這意味着,你現在數組是這樣的。
Array
(
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[8] => 9
[9] => 10
)
您可以使用array_values
對它們重新排序。
$rrr = array_values($rrr);
這樣做後,您必須小心打印內容。陣列看起來像Array([1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [8] => 9 [9] => 10) –
謝謝。它解決了這個問題 – scylla
什麼錯誤?始終包含錯誤消息。 0如果我正確 – chris85
數組$存款準備金率是空的。你是對的。這樣做的正確方法是什麼? –
看它是:當您嘗試打印的內容,這將導致錯誤未定義偏移 – scylla