[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск по массиву
Гость_Николай
у нас имеется двухуровневый массив такого вида:
$a = array(
'Категория 1' => array (
1 => 'пункт 1'
),
'Категория 2' => array (
2 => 'пункт 2',
3 => 'пункт 3',
4 => 'пункт 4',
5 => 'пункт 5'
),
'Категория 3' => array (
6 => 'пункт 6',
7 => 'пункт 7',
8 => 'пункт 8',
9 => 'пункт 9'
)
);



как вывести что содержится в ячейке (к примеру в 5 ячейке содержится "пункт 5")

К примеру мне надо вывести что содержится в 8ой ячейке. и должно вывести "пункт 8"
T1grOK
Обходить через foreach.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Guest
Получилось вот так:
<?php

function
search_array($search)
{
$a = array(
'Категория 1' => array (
1 => 'Дом'
),
'Категория 2' => array (
2 => 'Корова',
3 => 'Коза',
4 => 'Кот',
5 => 'Собака'
),
'Категория 3' => array (
6 => 'Машина',
7 => 'Трактор',
8 => 'Танк',
9 => 'Велосипед'
)
);


foreach ($a as $key => $val)
{
foreach ($a[$key] as $key_two => $val_two)
{
if ($key_two == $search)
return $val_two;
}
}
}


echo search_array(6);

?>


Может есть более оптимальный вариант?
T1grOK
Ну если внутренние массивы всегда индексные то достаточно это
foreach ($a[$key] as $key_two => $val_two)
{
if ($key_two == $search)
return $val_two;
}

Заменить на обычную проверку существования элемента/ключа
if(array_key_exists($search, $val)) return $val[$search];


_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.