這更是一個最佳實踐問題的一部分:執行兩個功能foreach語句
說,我想在foreach語句執行兩個功能(這些函數的回報結合起來,作爲一個單一的元素對於循環),我會結合他們的聲明,如:
foreach(function1($data).function2($data) AS $key=>$value)
或者有沒有更好的方法來做到這一點?
這更是一個最佳實踐問題的一部分:執行兩個功能foreach語句
說,我想在foreach語句執行兩個功能(這些函數的回報結合起來,作爲一個單一的元素對於循環),我會結合他們的聲明,如:
foreach(function1($data).function2($data) AS $key=>$value)
或者有沒有更好的方法來做到這一點?
如果功能1和函數2返回數組則:
foreach(array_merge(function1($data),function2($data)) AS $key=>$value)
首先,陣列串聯起來+
或array_merge()
,點僅用於字符串,所以你會得到字符串「ArrayArray」 。
其次,爲了更好的可讀性和可維護性,你應該分開函數調用和環路初始化:
$fileList = function1($data);
$fileList += function2($data);
foreach($fileLists AS $key=>$value) {
}
請注意,這並不使結果或代碼的性能差異,它只是幫助調試和理解(這種方式通常更重要)。
'function1'和'function2'返回什麼? – Narek
在這種情況下,都是glpb函數返回目錄的內容(文件名列表),我想掃描兩個目錄,並將兩個列表合併爲一個循環。 – mrpatg
也許我錯了,但'array_merge'? http://php.net/manual/en/function.array-merge.php – Narek