這裏主要頭痛,我很累,遍歷鍵和值,並操縱指針,以比較數組鍵中的整數。我試圖根據數組鍵的大於1的減法來拆分和排列這個數組,我很早就注意到這是一個有效的方法來將這些值分成簇,正如在這個問題的底部所解釋的那樣。php遍歷鍵和值,並分裂成基於數組鍵的子數組整數差異
例如:([0] =>貓[2] =>果[3] =>蘋果)鍵等同於:
第二 - 第一鍵:2-0 = (2> 1 )
3 - 第二鍵:3-2 = 1(1 = 1)
我給的什麼,我想在這個問題的底部來完成一個簡明的解釋。
陣列下面的代碼:
$arr1 = array("cat", "Van", "fruit", "apple", "orange", "banana", "car", "car", "boat", "Bike", "truck", "cat", "dog", "bus", "van", "truck", "Sea", "ocean", "sea", "ship", "train", "Land");
$arr2 = array("cat", "fruit", "apple", "orange", "banana", "cat", "dog", "sea", "ocean", "land");
$array = array_uintersect($arr1, $arr2, 'strcasecmp');
//returns:
Array
(
[0] => cat
[2] => fruit
[3] => apple
[4] => orange
[5] => banana
[11] => cat
[12] => dog
[16] => Sea
[17] => ocean
[18] => sea
[21] => Land
)
(下圖)是代碼中,我至今寫爲我試圖實現在這個問題的底部單獨作爲解釋:
$arr1 = array("cat", "Van", "fruit", "apple", "orange", "banana", "car", "car", "boat", "Bike", "truck", "cat", "dog", "bus", "van", "truck", "Sea", "ocean", "sea", "ship", "train", "Land");
$arr2 = array("cat", "fruit", "apple", "orange", "banana", "cat", "dog", "sea", "ocean", "land");
foreach($array as &$val){
$array2 = $array;
prev($array);
if(key($array2)-key($array)!==1) { //bool to determine if the difference in keys is only 1 integer apart.
$val = array($val);
$val[] = "";
}}
unset($val);
print_r(collapse_multi_arrays($array)); //collapse_multi_arrays is a custom function I have to form a single array from multidimensional ones.
outputs:
Array
(
[0] => cat
[1] =>
[2] => fruit
[3] => apple
[4] => orange
[5] => banana
[6] =>
[7] => cat
[8] => dog
[9] =>
[10] => Sea
[11] => ocean
[12] => sea
[13] =>
[14] => Land
[15] =>
)
(輸出上面)不知道它是否是迭代數組的最明智的方式,但我想使用空值來分塊或以某種方式分割以獲得如下所示的結果:
Array
(
[0] => Array
(
[0] => cat
)
[1] => Array
(
[2] => fruit
[3] => apple
[4] => orange
[5] => banana
)
[2] => Array
(
[11] => cat
[12] => dog
)
[3] => Array
(
[16] => Sea
[17] => ocean
[18] => sea
)
[4] => Array
(
[21] => Land
)
)
其中我想可以附加到每個簇到一個值的每個 這樣的:
Array
(
[0] => cat
[1] => fruit apple orange banana
[2] => cat dog
[3] => Sea ocean sea
[4] => Land
)
// ===================== ===================================
整體說明: 我正在嘗試做什麼整體是一樣的東西,
從這個:
Array
(
[0] => cat
[2] => fruit
[3] => apple
[4] => orange
[5] => banana
[11] => cat
[12] => dog
[16] => Sea
[17] => ocean
[18] => sea
[21] => Land
)
這樣:
Array
(
[0] => cat
[1] => fruit apple orange banana
[2] => cat dog
[3] => Sea ocean sea
[4] => Land
)
這是數組值羣集的附加在一起時在陣列密鑰的差是相距僅1的整數。 如果在陣列密鑰整數的差大於1,則簇所附數組值被傳遞到下一個陣列的鍵, 如從這個 *實施例
任何幫助高於此*鍵值,建議,代碼將非常感謝,因爲我發現很難遍歷鍵和值來實現這個目標,歡呼。
+1簡單優雅的解決方案! :)你剛剛救了我很多,因爲我從來沒有解決過任何類似的問題。該腳本用於文本處理,從列表中查找關鍵字並進一步處理。 – bobywww 2012-04-28 04:23:13