Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> соединение многомерных массивов 
:(
    Опции темы
spx
Дата 12.3.2006, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 3.3.2006

Репутация: нет
Всего: нет



всем привет!
никак не могу справитья со следующей задачей:
есть несколько массивов (может быть 2, 3 или 4).
например:
Код

$array1 = array('first'=>1, 'second'=>2, 'third'=3);
$array2 = array('first'=>1, 'second'=>2, 'third'=4);
$array3 = array('first'=>1, 'second'=>2, 'third'=5);


нужно получить массив
Код


$array4 = array('first'=>1, 'second'=2, 'third'=>array('1'=>3, '2'=>4, '3'=>5));


я накатал решение для определенного числа массивов и равного числа значений в них:
Код

<?php
$c = array();
$array1 = array('f'=>3, 's'=>4, 't'=>'222');
$array2 = array('f'=>3, 's'=>4, 't'=>'333');
foreach ($array1 as $arra1 => $value1) {
        if ($array1[$arra1] == $array2[$arra1]) {
           $c[$arra1] = $array1[$arra1];
        }
        else $c[$arra1] = array('1'=>$array1[$arra1], '2'=>$array2[$arra1]);
}
?>

но не знаю как реализовать решение для неограниченного числа массивов и различного числа значений в них... т.е. например, если в один из массивов добавится значение 'third'=>444, а в других его не будет, то оно должно быть и в результирующем массиве.

Это сообщение отредактировал(а) spx - 12.3.2006, 11:53
PM MAIL   Вверх
Darhazer
Дата 14.3.2006, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: 7
Всего: 29



Тебе это нужно?

Код

<?php
$array1 = array('first'=>1, 'second'=>2, 'third'=>3);
$array2 = array('first'=>1, 'second'=>2, 'third'=>4);
$array3 = array('first'=>1, 'second'=>2, 'third'=>5);

$array4 = array_merge_recursive($array1, $array2, $array3);

foreach ( $array4 as $key => $arr )
{
    $array4[$key] = array_unique($array4[$key]);
}

foreach ( $array4 as $key => $arr )
{
    if ( count($array4[$key] ) == 1 )
    {
        $array4[$key] = $array4[$key][0];
    }
}

print_r($array4);
        
?>



--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0663 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.