[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск по массиву
livephp
Есть такой код :
	foreach($a1 as $a1_val){
$h = $a1_val['home'];//здесь строка
foreach($a2 as $key=>$a2_val){
if(preg_match("/($h)/",$key)){
print_r($a2[$a2_val]);
}
}
}


Нужно вытянуть строку из массива($a1) и, сделать поиск в ключе у массива($a2) и, если есть строка в ключе, тогда вывести текущее значения того же массива ($a2).
Но этот код что то не "пляшет" :)
waldicom
Можно и без второго цикла. ПРосто проверять, есть ли значение ключа во втором массиве.
Что-то типа if(!empty($a2[$h]))

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
livephp
Как можно проверить, есть ли строка в ключе во втором массиве,
как не регуляркой ?
Цитата (waldicom @ 24.02.2013 - 00:16)
Что-то типа if(!empty($a2[$h]))

Этот пример ничего не выводит ...
waldicom
Цитата
Как можно проверить, есть ли строка в ключе во втором массиве, как не регуляркой ?

Так, как я показал.

Цитата
Цитата (waldicom @ 24.02.2013 - 00:16)
Что-то типа if(!empty($a2[$h]))

Этот пример ничего не выводит ...

Конечно не выводит, у Вас ключи видимо со скобками?
Покажите код с моим предложением, который не работает, а также ключи второго массива.




_____________
Свои мозги еще никто не отменял.
Телепатов нету.
livephp
Цитата (waldicom @ 24.02.2013 - 12:48)
Покажите код с моим предложением, который не работает, а также ключи второго массива.

foreach($a1 as $a1_val){
$h = $a1_val['home'];
if ( !empty($a2[$h]) ) {echo "ok";} else echo "nok";
}
ключи 2-го массива :

[
England - london ] => Array
(
[
0] => Array
(
.....
)
)
[
Spain - Barcelona ] => Array
(
[
1] => Array
(
.....
)
)
[
France - Paris ] => Array
(
[
2] => Array
(
.....
)
)
...

Они как видите без скобок
waldicom
А что за переменная $h? Вы же её в данном случае не определяете. Я правильно понимаю, что значения из первого массива $a1 приходят именно в виде "England - london " (с пробелами на последнем месте)?
Возможно Вы не допоняли концепцию массивов, если возник такой вопрос.
Вот так должно работать:
<?php

$a1 = array('England - london ', 'Spain - Barcelona ');
$a2 = array(
'England - london ' => array(1,2,3,4),
'Spain - Barcelona ' => array(5,6,7,8)
);



foreach($a1 as $a1val){
if ( !empty($a2[$a1val]) ) {echo "ok";} else echo "nok";
}


_____________
Свои мозги еще никто не отменял.
Телепатов нету.
livephp
Цитата (waldicom @ 24.02.2013 - 13:32)
Я правильно понимаю, что значения из первого массива $a1 приходят именно в виде "England - london " (с пробелов на последнем месте)?

Вот именно что в переменную $h значения приходят именно в виде :
"london","spain","France" .
Вот почему мне нужно именно регом искать ...
waldicom
Так это... Телепатов нету. Рассказали бы сразу, в каком виде ключи приходят...


_____________
Свои мозги еще никто не отменял.
Телепатов нету.
Быстрый ответ:

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