Еще подробнее:
функция возвращает массив такой:
Array ( [mod_name] => news [tpl_name] => main.tpl )
Или такой:
Array ( [0] => Array ( [mod_name] => news [tpl_name] => main.tpl ) [1] => Array ( [mod_name] => messages [tpl_name] => main.tpl ) )
В первом случае почучить имя шаблона (tpl_name) надо допустим так $arr['tpl_name'], во втором уже так $arr[0]['tpl_name'].
А на выходе мне нужна просто переменная с шаблоном поэтому думаю надо сделать условие типа:
if (масив мгомерный) $a = $arr[0]['tpl_name'];Как так сделать?)
else $a = $arr['tpl_name'];
Спустя 1 минута, 24 секунды (26.04.2011 - 11:37) alex12060 написал(а):
if (isset($arr[0]['tpl_mode'])) $a = $arr[0]['tpl_name'];
else $a = $arr['tpl_name'];
Спустя 1 минута, 57 секунд (26.04.2011 - 11:39) Renden написал(а):
alex12060
Нде.. ппц))) А вообще можно узнать тип массива, или только его существование?)
Нде.. ппц))) А вообще можно узнать тип массива, или только его существование?)
Спустя 11 минут, 49 секунд (26.04.2011 - 11:51) Игорь_Vasinsky написал(а):
А вообще можно узнать тип массива, или только его существование?)
всмысле: индексный или ассоциативный?
или ты про простые и многомерные?
в первом случае достаточно ключи в цикле на is_numeric() проверить
во втором is_array
Спустя 3 минуты, 18 секунд (26.04.2011 - 11:54) Renden написал(а):
Игорь_Vasinsky
Я про 2 случай, так функция is_array проверяет массив это или нет, а не тип или я ошибаюсь?
alex12060, спасиб за подсказку, чето я седня туплю нереально)
Я про 2 случай, так функция is_array проверяет массив это или нет, а не тип или я ошибаюсь?
alex12060, спасиб за подсказку, чето я седня туплю нереально)
Спустя 2 минуты, 7 секунд (26.04.2011 - 11:56) Игорь_Vasinsky написал(а):
is_array выдаст TRUE - если массив, FALSE - если не массив
1.$var = array(1,2,3,4);
2. $var = "value";
1.$var = array(1,2,3,4);
2. $var = "value";
echo is_array($var);
Спустя 5 минут, 35 секунд (26.04.2011 - 12:02) alex12060 написал(а):
Я вижу пока 2 пути:
Извлекаешь 0 элемент массива и делаешь проверку:
if (is_array($arr[0])) {
# some expr
}
Или пробегаешься по массиву foreach() и проверяешь $value по такому-же принципу, как и выше.
Извлекаешь 0 элемент массива и делаешь проверку:
if (is_array($arr[0])) {
# some expr
}
Или пробегаешься по массиву foreach() и проверяешь $value по такому-же принципу, как и выше.
Спустя 34 секунды (26.04.2011 - 12:02) Игорь_Vasinsky написал(а):
is_numeric() - использется по другому, через foreach() - проверить все ключи массива через is_numeric() - если есть FALSE (хотябы один) - значит ассоциативный
Спустя 33 секунды (26.04.2011 - 12:03) Raito-kun написал(а):
function is_multi($a) {
$rv = array_filter($a,'is_array');
if(count($rv) > 0) return true;
return false;
}
Спустя 37 секунд (26.04.2011 - 12:03) Игорь_Vasinsky написал(а):
Спустя 1 минута, 41 секунда (26.04.2011 - 12:05) linker написал(а):
foreach($arr as $key => $value)
{
if (is_array($value))
$a = $value['tpl_name'];
else
$a = $value;
}
Спустя 6 минут, 24 секунды (26.04.2011 - 12:11) Renden написал(а):
Спасибо всем,я понял как проверять, но решил сделать проще:
Array ( [mod_name] => news [tpl_name] => main.tpl )
возвращаю терь в таком виде:
Array ( [0] => ( [mod_name] => news [tpl_name] => main.tpl ) )
Дабы остальной код не переписывать
Array ( [mod_name] => news [tpl_name] => main.tpl )
возвращаю терь в таком виде:
Array ( [0] => ( [mod_name] => news [tpl_name] => main.tpl ) )
Дабы остальной код не переписывать