php 迴圈兩個陣列的值 如何一次迴圈兩個陣列?

2021-10-22 21:40:29 字數 1433 閱讀 5496

桃花長相依

問題那麼問題當然是你的巢狀foreach迴圈。因為對於$data1陣列的每個元素,你遍歷整個$data2陣列(所以總共有$data1* $data2迭代)。解決方案要解決這個問題,您必須立即遍歷兩個陣列。array_map()方法(php> = 5.3)您可以使用array_map()並將所有陣列傳遞給它,同時將它迴圈到它。array_map(function($v1, $v2), $data1, $data2 /* , add more arrays if needed manually */);注意:如果元素數量不均勻,您將不會產生任何錯誤,它只會列印null(意味著您將看不到任何內容)multipleiterator方法(php> = 5.3)使用multipleiterator和連線盡可能多的arrayiterator,因為你需要。$it = new multipleiterator();$it->attachiterator(new arrayiterator($data1));$it->attachiterator(new arrayiterator($data2));//add more arrays if needed foreach($it as $a) 注意:如果元素數量不均勻,它將只列印兩個陣列仍具有值的所有值for loop方法(php> = 4.3)使用帶有計數器變數的for迴圈,您可以將其用作兩個陣列的鍵。$keysone = array_keys($data1);$keystwo = array_keys($data2);$min = min(count($data1), count($data2));for($i = 0; $i 

echo $data1[$keysone[$i]] . "

";echo $data2[$keystwo[$i]] . "

";}注意:使用array_keys()就是如此,如果陣列不具有相同的鍵或具有關聯性,這也適用。min()用於僅迴圈遍歷每個陣列所具有的元素array_combine()方法(php> = 5.0)或者,如果陣列只有唯一值,則可以array_combine()同時使用這兩個陣列,以便$data1可以作為鍵和$data2值進行訪問。foreach(array_combine($data1, $data2) as $d1 => $d2) 注意:陣列必須具有相同數量的元素,否則array_combine()將引發錯誤call_user_func_array()方法(php> = 5.6)如果要同時列印2個以上的陣列或只列印未知數量的陣列,可以將該array_map()方法與call_user_func_array()呼叫結合使用。$func = function(...$numbers);call_user_func_array("array_map", [$func, $data1, $data2]);注意:由於這種array_map()方法使用的方法,它的行為與元素數量不均勻的行為相同。此外,由於這種方法只適用於php> = 5.6你可以刪除引數,改變了$numbers用func_get_args()在foreach迴圈,然後它也適用於php> = 5.3

陣列中只出現一次的兩個數

劍指 offer 56 i.陣列中數字出現的次數 大意 找出陣列中只出現一次的兩個數 其它出現兩次 思路 思路 首先需要知道乙個前置問題 找出陣列中只出現一次的乙個數 其它出現兩次 顯然,對整個陣列進行異或操作即可。那麼,我們是否有可能將本題中的陣列分隔成兩部分呢 不要求連續 答案是肯定的 我們仍然...

如何迴圈比較兩個陣列 比較兩個陣列的內容是否相同

需求 設計乙個方法,用於比較兩個陣列的內容是否相同 思路 1.定義兩個陣列,分別使用靜態初始化完成陣列元素的初始值 2.定義乙個方法,用於比較兩個陣列的內容是否相同 3.比較兩個陣列的內容是否相同,按照下面的步驟實現就可以了 首先比較陣列長度,如果長度不相同,陣列內容肯定不相同,返回false 其次...

php兩個陣列融合,php合併兩個陣列的方式有哪些

1 arrary merge 示例 arr1 array 1,2,3,4,5 arr2 array 1,2,6,7,8,9,10 result1 array merge arr1,arr2 arr3 array name itbsl age 13,male arr4 array name 火龍果 a...