я провожу много времени в проблеме слияния массивов
у меня есть два массива, как это:
массив ( [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: «выберите имя = [поле] / выберите»
Надеюсь, кто-нибудь может помочь мне улучшить время
Спасибо за вашу помощь
Итак, этот бит кода приводит к тому же результату, который вы ожидаете:
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, так как у меня была опечатка в одном из массивов.
Других решений пока нет …