PHP отображает значения определенных ключей из одного массива на основе значений из другого массива

В течение прошлой недели я работал над страницей PHP, чтобы показать онлайн внутренний запас устройств

Проблема, с которой я сталкиваюсь и где я застрял, заключается в следующем:

У меня есть 2 массива, как следует:

  • первый создан с использованием explode() функция на строку;
  • второй создан с использованием foreach() на $query->result_array() полученный от MySQL запрос на опрос

Когда я вывожу оба массива, это выглядит так:

// 1st array

Array (
[0] => NAME
[1] => TAG
[2] => SERVICE
[3] => TYPE
[4] => COMMENT
[5] => LOCATION
)

// 2nd array

Array (
[ID] => 3
[ID_CAT] => 10
[NAME] => test
[TAG] => 123456789
[SERVICE] => PAID
[TYPE] => SIM
[COMMENT] => Needs activation
[LOCATION] => A city
[STATUS] => Available
)

Массивы не одинаковой длины:

  • 1-й имеет длину 6
  • 2-й имеет длину 9

Мой вопрос: Как я могу показать значения 2-го массива, основываясь на совпадении с 1-м массивом?

На самом деле матч выглядит примерно так: if (1st array value == 2nd array key) { output }

Я пробовал foreach() и for() цикл, но он покажет мне только 1 значение ($i всегда 0)

Вот двойной foreach() петли я пробовал:

foreach($1st_array as $key1st => $value1st) {
foreach($2nd_array as $values2nd) {
if (strcmp($key1st , $values2nd) == 0) { print '<td>'.$value1st.'</td>'; }
}
}

… и вот foreach() а также for() петли я пробовал:

foreach($1st_array as $key1st => $value1st) {
for($i = 0; $i < count($2nd_array); $i++) {
if ($key1st == $2nd_array[$i]) {
print '<td id="'.$i.'">'.$value1st.'</td>';
}
}
}

Любые идеи о том, как я могу сделать эту работу?

Это вызывает у меня головную боль 🙁

Все ответы будут высоко оценены!

Мои наилучшие пожелания,
Майкл

ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ:

@Не берите в голову: Вывод, который я хочу получить из 2 массивов, будет таким:

  • Имя: «тест»
  • Tag: ‘123456789’
  • Услуга: «ПЛАТНАЯ»
  • Тип: «SIM»
  • Комментарий: «Требуется активация»
  • Расположение: «Город»

@Не паникуйтеПравильно, «СТАТУС» был опечаткой! Извини за это

0

Решение

Попробуйте использовать isset() со значением 1-го массива в качестве ключа 2-го массива —

foreach($1st_array as $key){
if(isset($2nd_array[$key])){
echo $key . ": " . $2nd_array[$key]
}
}
0

Другие решения

Согласно вашему описанию, вы хотели бы объединить два массива, сопоставив значения первого массива с ключами второго.

Попробуйте следующее.

<?php

$array1 = Array (
'NAME',
'TAG',
'SERVICE',
'TYPE',
'COMMENT',
'LOCATION'
);

$array2 = $favorite_foods = Array (
'ID'=> 3,
'ID_CAT' => 10,
'NAME' => 'test',
'TAG'=> 123456789,
'SERVICE' => 'PAID',
'TYPE' => 'SIM',
'COMMENT' => 'Needs activation',
'LOCATION' => 'A city',
'STATUS' => 'Available'
);foreach ($array2 as $key => $value):
//search the value in array, which is the
//key of the array2.
$position = array_search($key, $array1);

if ($position !== false):
echo "  $key<br/>";
else:

echo "-NO MATCH-<br/>";

endif;

endforeach;--Output--

-NO MATCH-
-NO MATCH-
NAME
TAG
SERVICE
TYPE
COMMENT
LOCATION
-NO MATCH-
0

По вопросам рекламы [email protected]