2017-02-16 10 views
1

Actully array1 - мой массив по умолчанию. но я предоставляю возможность покупать readOrder с моего сайта. теперь, если какой-то casino_id 78 является покупкой readOrder 1, чем я должен держать его в первой позиции. Это фактическое чтение. Исправлено 4. Рассмотрим readOrder = rank и id = casino_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 
      ) 

    ) 

Secon массив: -

$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

Вы можете включать в себя фактический массив (как в PHP) в вопросе – sumit

+0

1. получить ключи от второго массива 2. Фильтр массив 1, которые не имеют ключи от второго массива 3. Смена ключи массива 4. (его почти полночь здесь) .. Я отвечу, если никто не ответит до завтра .. Удачи :) – sumit

ответ

1

Кажется, что это будет работать в вашем случае со смесью array_combine и array_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

Я проверил это только на 4 значения массива в $ array1, и он отлично работал для меня. – jitendrapurohit

+0

Большое спасибо. Можем ли мы удалить значение array1, которое уже доступно в массиве2. просто для удаления окончательного массива дубликатов id. –

+0

Я не думаю, что вы получите дубликаты значений в конечном массиве, поскольку мы вставляем уникально в temp. Спасибо за обновление, хотя пропустили опечатку. Просто не понимаю причину downvote (TWIMC) для принятого ответа. – jitendrapurohit

 Смежные вопросы

  • Нет связанных вопросов^_^