2017-02-16 64 views
1

Actully array1是我的默認數組。但我提供設施從我的網站購買readingOrder。現在如果一些casino_id 78是購買readingOrder 1比我必須保持在第一position.It實際readingOrder是4. 考慮閱讀=秩和id =賭場_id。如何搜索並重置我的後續數組?

所以基本上array1是我的默認array.array2是購買訂單,我希望結果像這兩個數組array3。

$array1 = Array 
     (
     [0] => Array 
      (
       [id] => 76 
       [readingOrder] => 1 
      ) 

     [1] => Array 
      (
       [id] => 81 
       [readingOrder] => 2 
      ) 

     [2] => Array 
      (
       [id] => 78 
       [readingOrder] => 3 
      ) 

     [3] => Array 
      (
       [id] => 80 
       [readingOrder] => 4 
      ) 

     [4] => Array 
      (
       [id] => 82 
       [readingOrder] => 5 
      ) 

     [5] => Array 
      (
       [id] => 83 
       [readingOrder] => 6 
      ) 

     [6] => Array 
      (
       [id] => 84 
       [readingOrder] => 7 
      ) 

     [7] => Array 
      (
       [id] => 85 
       [readingOrder] => 8 
      ) 

     [8] => Array 
      (
       [id] => 86 
       [readingOrder] => 9 
      ) 

     [9] => Array 
      (
       [id] => 87 
       [readingOrder] => 10 
      ) 

    ) 

塞康陣列: -

$array2 = Array 
(
    [0] => Array 
     (
      [rank] => 1 
      [casino_id] => 78 
     ) 

    [1] => Array 
     (
      [rank] => 4 
      [casino_id] => 76 
     ) 

) 

第三個: -

$array3 = Array 
    (
     [0] => Array 
      (
       [id] => 78 
       [readingOrder] => 1 
      ) 


     [1] => Array 
      (
       [id] => 81 
       [readingOrder] => 2 
      ) 


     [2] => Array 
      (
       [id] => 80 
       [readingOrder] => 3 
      ) 

     [3] => Array 
      (
       [id] => 76 
       [readingOrder] => 4 
      ) 


     [4] => Array 
      (
       [id] => 82 
       [readingOrder] => 5 
      ) 

     [5] => Array 
      (
       [id] => 83 
       [readingOrder] => 6 
      ) 

     [6] => Array 
      (
       [id] => 84 
       [readingOrder] => 7 
      ) 

     [7] => Array 
      (
       [id] => 85 
       [readingOrder] => 8 
      ) 

     [8] => Array 
      (
       [id] => 86 
       [readingOrder] => 9 
      ) 

     [9] => Array 
      (
       [id] => 87 
       [readingOrder] => 10 
      ) 

    ) 
+1

可以包含在問題 – sumit

+0

1.實際陣列(如每PHP)得到第二陣列2濾波器的鍵陣列1不具有第二陣列3變化的鍵陣列4的按鍵。合併它(它幾乎午夜在這裏)..我會回答它,如果沒有人回答,直到明天..祝你好運:) – sumit

回答

1

看來,這將工作你的情況與array_combinearray_column的混合物。查看內嵌評論以獲取詳細信息。

// get (rank => casino_id) type array from array2 using array functions. 
$array3 = array_combine(array_column($array2, 'rank'), array_column($array2, 'casino_id')); 
//similar type from array1 
$array4 = array_combine(array_column($array1, 'readingOrder'), array_column($array1, 'id')); 

$temp = $finalArr = array(); 
//push only if the value is present in high priority array (array3). 
foreach ($array4 as $key => $val) { 
    $temp[$key] = $array3[$key] ? $array3[$key] : $array4[$key]; 
} 

//finally modify the array according to original key=> value type. 
foreach ($temp as $k => $v) { 
    $finalArr[] = array(
    'id' => $v, 
    'readingOrder' => $k, 
); 
} 
+0

我檢查了$ array1中只有4個數組值,它對我來說工作得很好。 – jitendrapurohit

+0

非常感謝。我們可以移除array2中已有的array1的值嗎?只是爲了移除重複的id表單最終數組。 –

+0

我不認爲你會在最終數組中得到重複值,因爲我們插入唯一的溫度。感謝您的更新,但錯過了錯字。只是不明白爲接受答案downvote(TWIMC)的原因。 – jitendrapurohit