(I'm a beginner)
我的腳本使用標準和array_diff和重新編號的數字鍵
$c = 0;
$t = count($array);
while ($c < $t) {
$blah = $array[$c];
++$c;
}
相當廣泛。但我遇到了一種情況,我也需要array_diff
,它打破了一切,因爲現在數字鍵有空隙。我得到Undefined offset
各地的錯誤。
如何重置數組的數字鍵?數組中對象的順序是不相關的。
(I'm a beginner)
我的腳本使用標準和array_diff和重新編號的數字鍵
$c = 0;
$t = count($array);
while ($c < $t) {
$blah = $array[$c];
++$c;
}
相當廣泛。但我遇到了一種情況,我也需要array_diff
,它打破了一切,因爲現在數字鍵有空隙。我得到Undefined offset
各地的錯誤。
如何重置數組的數字鍵?數組中對象的順序是不相關的。
要重置鍵,你可以使用array_values()
:
$array = array_values($array);
你並不需要重置您陣的鑰匙:你必須改變你通過它的方式。
而不是使用一個while
循環和索引訪問數組elemnts的,你應該使用一個foreach循環,這隻會讓你從數組元素:
foreach ($array as $key => $value) {
// $key contains the index of the current element
// $value contains the value of the current element
}
謝謝大肚。
對於lulz,我將與您分享以下白癡黑客在等待一個合理的答案,我用:
$badArray = array_diff($allData, $myData);
$string = implode(",",$badArray);
$dump = explode(",",$string);
$goodArray = $dump;
工作。讓我覺得很骯髒,但它的工作。
+1對你來說,因爲我一定會在別處使用這些知識。但支票必須去Tatu擊中靶心。謝謝你帕斯卡。 – Drew 2010-03-04 12:15:25
@Andrew:不客氣:-) ;;是的,我知道我沒有真正回答這個問題,但我認爲這將是有用的*(我總是使用foreach循環數組元素)* ;;正如我看到另一個已經談到'array_values'的答案,我沒有把它放在我的。 – 2010-03-04 12:19:52
我很感謝您花時間回答,我真的這麼做。我仍然渾身溼透,在「我有一個真正的kickass錘子」階段學會編程。所以再次感謝您爲更合適的代碼設計所做的廣泛而有益的推動。 – Drew 2010-03-04 12:23:05