Вчера у меня возникла проблема со слиянием массивов, которую я смог исправить с помощью SO. Сегодня у меня снова возникла проблема со слиянием массивов, но на этот раз с многомерными массивами.
У меня есть массив $usergroup['groups'] и массив $usergroup['lang']
Код: Выделить всё
$usergroup['groups']
Код: Выделить всё
Array
(
[0] => Usergroup_Model Object
(
[id] => 1
[deleted] => 0
)
[1] => Usergroup_Model Object
(
[id] => 2
[deleted] => 0
)
[2] => Usergroup_Model Object
(
[id] => 3
[deleted] => 0
)
)
Код: Выделить всё
Array
(
[0] => Usergroup_Model Object
(
[id] =>
[id_usergroup] => 1
[name] => Administratoren
[id_lang] => 1
)
[1] => Usergroup_Model Object
(
[id] =>
[id_usergroup] => 2
[name] => Benutzer
[id_lang] => 1
)
[2] => Usergroup_Model Object
(
[id] =>
[id_usergroup] => 3
[name] => Gäste
[id_lang] => 1
)
)
Код: Выделить всё
Array
(
[0] => Usergroup_Model Object
(
[id] => 1
[id_usergroup] => 1
[name] => Administratoren
[id_lang] => 1
[deleted] => 0
)
[1] => Usergroup_Model Object
(
[id] => 2
[id_usergroup] => 2
[name] => Benutzer
[id_lang] => 1
[deleted] => 0
)
[2] => Usergroup_Model Object
(
[id] => 3
[id_usergroup] => 3
[name] => Gäste
[id_lang] => 1
[deleted] => 0
)
)
Я пробовал несколько функций слияния (
Код: Выделить всё
array_merge()
Код: Выделить всё
['lang']
Код: Выделить всё
['groups']). Чтобы это исправить, я попытался удалить пустые значения в массиве lang
Код: Выделить всё
public static function getAll()
{
$usergroup['groups'] = self::find();
$usergroup['lang'] = self::findInTable(array(
'id_lang' => Language_Model::getDefaultLanguage()
), self::dbTranslationTable);
foreach ($usergroup as $ug) {
$ug = array_filter($ug, function($val) {
return $val != '';
});
}
return array_merge($ug);
}
Есть предложения, в каком направлении я мог бы пойти?
< strong>Изменить: С помощью кода, предоставленного Пе де Леао, я смог решить проблему. Моя функция теперь выглядит так:
Код: Выделить всё
public static function getAll()
{
$usergroup['groups'] = self::find();
$usergroup['lang'] = self::findInTable(array(
'id_lang' => Language_Model::getDefaultLanguage()
), self::dbTranslationTable);
$out = array();
foreach ($usergroup['groups'] as $key => $value) {
$out[] = (object) array_merge((array) $usergroup['lang'][$key], (array) $value);
}
return $out;
}
Подробнее здесь: https://stackoverflow.com/questions/178 ... umn-values