Работа с файлом массива со следующей структурой. Я знаю, что есть дополнительные массивы, которые должны быть вставлены в каждый массив «цвет».
$items=array (
0 =>
array (
'color' => 'category_a',
),
1 =>
array (
'book' => 'Gone With The Wind',
'movie' => 'GWTW',
'id'=> 'A100'
),
2 =>
array (
'book' => 'Goldfinger',
'movie' => 'GF',
'id'=> 'A103'
),
3 =>
array (
'color' => 'category_b',
),
4 =>
array (
'book' => 'Across The Great Dvide',
'movie' => 'ATGD',
'id'=> 'B102'
),
5 =>
array (
'book' => 'Goldfinger',
'movie' => 'GF',
'id'=> 'B103'
),
);
После того, как этот массив создан, я использую список для цикла, чтобы убедиться, что каждое значение в списке помещается в каждый «цветной» массив следующим образом
foreach ($controllist as $key=>$value){
foreach($items as $item){
if(in_array($value['book'],$item){
echo "PRESENT IN ARRAY"."<BR>";
}else{
echo "INSERT INTO ARRAY HERE"."<BR>";
}
}
}
Для простоты мой контрольный список выглядит так
Унесенные ветром
Через великую пропасть
Золотой палец
После завершения я должен получить информацию для Across The Great Divide, вставленную в ‘color’ => ‘category a’ как [2] с Goldfinger, перемещающимся вниз на единицу. В ‘color’ => category_b ‘первый массив должен быть Gone With The Wind. В любом из «цветных» массивов может отсутствовать массив в любой позиции. Чтобы подвести итог, нужно проверить наличие значения из списка, если его нет, вставить в массив. Кроме использования показанных циклов foreach, есть ли более простой способ сделать это? Если нет, то как я могу вставить информацию в правильное положение?
Спасибо
РЕДАКТИРОВАТЬ:
Я считаю, что вопрос не может быть ясным. Что мне нужно сделать, это проверить наличие одного массива в другом. Если значение в conrollist отсутствует в массиве, вставьте массив в массив в соответствии с положением в conrollist. Вставленный массив будет иметь ту же структуру, что и остальные (я могу позаботиться об этой части). У меня возникли проблемы с определением, если он существует, и если не вставить его. Надеюсь это поможет
Возможно, вы захотите использовать for
цикл вместо этого, чтобы у вас был указатель на каждую итерацию, чтобы определить, где вы находитесь в массиве.
foreach($items as $item){
for($i = 0; $i < count($controllist); $i++) {
if(in_array($controllist[$i]['book'],$item){
echo "PRESENT IN ARRAY AT POS ".$i."<BR>";
}else{
$controllist[$i]['book'] = $yourvar;
echo "INSERT INTO ARRAY HERE"."<BR>";
}
}
}
Других решений пока нет …