У меня есть такой массив

  $_SESSION['list'] = array(
 'Romero' => 2,
 'Ronaldinho' => 4,
  'ronaldo'  =>8,
  'messi' => 20
);

Теперь, если я ввожу строку $str="ro", я хочу искать $str в $_SESSION['list'] чтобы он вернул меня

$id[0]=>2
$id[1]=> 4
$id[2]=> 9

А также

$name[0]=> 'Romero'
$name[1]=> 'Ronaldinho'
$name[2]=> 'ronaldo'

Как я могу это сделать?

-3
HackerManiac 16 Май 2014 в 18:37

2 ответа

Лучший ответ

Просто прокрутите массив и посмотрите, присутствует ли ваша строка поиска в каждом индексе.

$id = array();
$name = array();

foreach($_SESSION['list'] as $key => $value)
{
    if(strpos(strtolower($key), strtolower($str)) !== FALSE)
    {
        $id[] = $value;
        $name[] = $key;
    }
}

ДЕМО

2
Patrick Q 16 Май 2014 в 14:50

Вы можете использовать foreach через $_SESSION['list'], сравнивая ключи с $str. если сравнение верно, array_push ключ и значение для ваших новых массивов.

1
Félix Gagnon-Grenier 16 Май 2014 в 14:42