PHP слить массив рекурсивно с добавлением, если не существует в определенном месте

я провожу много времени в проблеме слияния массивов

у меня есть два массива, как это:

массив
(
[0] => zkd
[1] => zklPoi
[2] => собеседник
[3] => moyenCom
[4] => дата
[5] => действие
[6] => план
[7] => planUser
[8] => planDate
[9] => sql
[10] => sqlUser
[11] => sqlDate
[12] => genreAction
[13] => nameAction
[14] => комментарий
[15] => zk_remote
[16] => zk_host
[17] => zk_came
[18] => zk_referrer
[19] => zk_config
[20] => zkm_date
[21] => zkm_user
[22] => zkc_date
[23] => zkc_user
)

// ************************************************ **********************************

массив
(
[0] => Массив
(
[field] => zklPoi
[текст] => Пои
[обязательно] => _R
[input] => текст
)

[1] => Массив
(
[field] => Interlocuteur
[text] => Interlocuteur
[обязательно] => _R
[input] => текст
)

[2] => Массив
(
[field] => moyenCom
[текст] => Мойен связи
[обязательно] => _R
[input] => текст
)

[3] => Массив
(
[поле] => дата
[текст] => Дата
[обязательно] => _R
[input] => текст
)

[4] => Массив
(
[поле] => действие
[text] => Требование к действию
[обязательно] => _R
[input] => текст
)

[5] => Массив
(
[поле] => план
[текст] => планы
[обязательно] => _R
[input] => текст
)

[6] => Массив
(
[field] => planUser
[text] => Destiner Ã
[обязательно] => _R
[input] => текст
)

[7] => Массив
(
[field] => planDate
[текст] => дата плана souhaitée
[обязательно] => _R
[input] => текст
)

[8] => Массив
(
[field] => sql
[текст] => данс ла бдд
[обязательно] => _R
[input] => текст
)

[9] => Массив
(
[field] => sqlUser
[text] => Destiner Ã
[обязательно] => _R
[input] => текст
)

[10] => Массив
(
[field] => sqlDate
[text] => Дата SQL souhaitée
[обязательно] => _R
[input] => текст
)

[11] => Массив
(
[field] => nameAction
[text] => Номинальное действие
[обязательно] => _F
[input] => текст
)

[12] => Массив
(
[поле] => комментарий
[текст] => Комментарий
[обязательно] => _F
[input] => текст
)

)

я хочу объединить эти массивы для вывода именно этого:

массив
(
[0] => Массив
(
[ExistField] => ЗКД
)

[1] => Массив
(
[ExistField] => zklPoi
[field] => zklPoi
[текст] => Пои
[обязательно] => _R
[input] => текст
)

[2] => Массив
(
[ExistField] => Interlocuteur
[field] => Interlocuteur
[text] => Interlocuteur
[обязательно] => _R
[input] => текст
)

[3] => Массив
(
[ExistField] => moyenCom
[field] => moyenCom
[текст] => Мойен связи
[обязательно] => _R
[input] => текст
)

[4] => Массив
(
[ExistField] => дата
[поле] => дата
[текст] => Дата
[обязательно] => _R
[input] => текст
)

[5] => Массив
(
[ExistField] => действие
[поле] => действие
[text] => Требование к действию
[обязательно] => _R
[input] => текст
)

[6] => Массив
(
[ExistField] => План
[поле] => план
[текст] => планы
[обязательно] => _R
[input] => текст
)

[7] => Массив
(
[ExistField] => planUser
[field] => planUser
[text] => Destiner Ã
[обязательно] => _R
[вход] => выбрать
)

[8] => Массив
(
[ExistField] => planDate
[field] => planDate
[текст] => дата плана souhaitée
[обязательно] => _R
[input] => текст
)

[9] => Массив
(
[ExistField] => SQL
[field] => sql
[текст] => данс ла бдд
[обязательно] => _R
[input] => текст
)

[10] => Массив
(
[ExistField] => sqlUser
[field] => sqlUser
[text] => Destiner Ã
[обязательно] => _R
[вход] => выбрать
)

[11] => Массив
(
[ExistField] => sqlDate
[field] => sqlDate
[text] => Дата SQL souhaitée
[обязательно] => _R
[input] => текст
)

[12] => Массив
(
[ExistField] => genreAction
)

[13] => Массив
(
[ExistField] => nameAction
[field] => nameAction
[text] => Номинальное действие
[обязательно] => _F
[input] => текст
)

[14] => Массив
(
[ExistField] => комментарий
[поле] => комментарий
[текст] => Комментарий
[обязательно] => _F
[input] => textarea
)
[15] => Массив
(
[ExistField] => zk_remote
)

[16] => Массив
(
[ExistField] => zk_host
)

[17] => Массив
(
[ExistField] => zk_came
)

[18] => Массив
(
[ExistField] => zk_referrer
)

[19] => Массив
(
[ExistField] => zk_config
)

[20] => Массив
(
[ExistField] => zkm_date
)

[21] => Массив
(
[ExistField] => zkm_user
)

[22] => Массив
(
[ExistField] => zkc_date
)

[23] => Массив
(
[ExistField] => zkc_user
))

для использования объединенного массива:
мне нужно отобразить, где «[required] => _R» в переменных для использования в сценарии
как «взорваться (‘,’, [поле])»

мне нужно отобразить все, где isSet «[field] => что-нибудь» в переменных для использования в скрипте
например: if [input] == ​​text: «input type = [input] name = [field] placeholder = [text]»
if [input] == ​​textarea: «textarea name = [field] placeholder = [text] / textarea»
if [input] == ​​select: «выберите имя = [поле] / выберите»

Надеюсь, кто-нибудь может помочь мне улучшить время
Спасибо за вашу помощь

0

Решение

Итак, этот бит кода приводит к тому же результату, который вы ожидаете:

foreach ($array1 as $value1) {
$found = 0;
foreach ($array2 as $value2) {
if ($value2['field'] == $value1) {
$result[] = array(
"existField" => $value1,
"field" => $value2['field'],
"text" => $value2['text'],
"required" => $value2['required'],
"input" => $value2['input']
);
$found = 1;
}
}
if (!$found) {
$result[] = array(
"existField" => $value1
);
}
}

PHPFiddle Link: http://www.phpfiddle.org/main/code/j27g-bydk

Изменить: обновил ссылку PHPFiddle, так как у меня была опечатка в одном из массивов.

0

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

Других решений пока нет …

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