Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: array ( )
 
 автор: GhosTer   (03.10.2005 в 15:24)   письмо автору
 
 

Прошу всех помочь!!!!
Впринципи элементарно, но я запутался и встал в тупик!

Нужно следующее:

Есть массив с вложенным в него массивом, т.е. 2-мерный массив.
Выглядит он примерно так:

Array
(
[0] => Array
(
[0] => Сидоров
[1] => Саша
[2] => Батькович
)

[1] => Array
(
[0] => Крылов
[1] => Миша
[2] => Батькович
)

[2] => Array
(
[0] => Пупкин
[1] => Иван
[2] => Батькович
)

[3] => Array
(
[0] => Рябой
[1] => Вова
[2] => Батькович
)

[4] => Array
(
[0] => Голый
[1] => Иван
[2] => Батькович
)

)

А из этого массива мне нужно создать еще один массив, показующий сколько раз встречается одно и тоже имя.
Примерно такой массив:
Array
(
[0] => Array
(
[0] => Саша
[1] => 1
)

[1] => Array
(
[0] => Миша
[1] => 1
)

[2] => Array
(
[0] => Иван
[1] => 2
)

[3] => Array
(
[0] => Вова
[1] => 1
)

)

Не могу преодолеть этот барьер, подсадите, пожалуйста!

   
 
 автор: cheops   (03.10.2005 в 15:52)   письмо автору
 
   для: GhosTer   (03.10.2005 в 15:24)
 

Может вам больше подойдёт такая структура массива
Array
(
    [Вова] => 1
    [Иван] => 2
    [Миша] => 1
    [Саша] => 1
)

Для получения такого массива можно воспользоваться скриптом
<?php
$arr 
= array
       (
         array(
"Сидоров","Саша","Батькович"),
         array(
"Крылов","Миша","Батькович"),
         array(
"Пупкин","Иван","Батькович"),
         array(
"Рябой","Вова","Батькович"),
         array(
"Голый","Иван","Батькович")
      );

// В цикле обходим массив $arr и формируем
// промежуточный массив $temp
foreach($arr as $fio$temp[] = $fio[1];

// Сортируем полученный массив
sort($temp);

// Формируем конечный массив
foreach($temp as $name)
{
  
$name_count[$name]++;
}

// Выводим содержимое массива
print_r($name_count);
?>

   
 
 автор: localGhost   (03.10.2005 в 15:53)   письмо автору
 
   для: GhosTer   (03.10.2005 в 15:24)
 

<?

$array 
= array 
    (
    array (
"Сидоров""Саша""Батькович"),
    array (
"Крылов""Миша""Батькович"),
    array (
"Пупкин""Иван""Батькович"),
    array (
"Рябой""Вова""Батькович"),
    array (
"Голый""Иван""Батькович")
    );

foreach(
$array as $a1) {
    foreach (
$a1 as $a2) {
        
$new_array[] = $a2;
    }
}

// array_count_values - возвращает количество значений в массиве
$out array_count_values($new_array);
print_r ($out);
?>


на выходе даст:
Array
(
    [Сидоров] => 1
    [Саша] => 1
    [Батькович] => 5
    [Крылов] => 1
    [Миша] => 1
    [Пупкин] => 1
    [Иван] => 2
    [Рябой] => 1
    [Вова] => 1
    [Голый] => 1
)

   
 
 автор: GhosTer   (03.10.2005 в 16:37)   письмо автору
 
   для: localGhost   (03.10.2005 в 15:53)
 

Всем большое спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования