|
|
|
| 1ый вопрос.
Есть многомерный массив. И из него надо удалить все записи, если нет значения, т.е. пустая строка..""
2ой вопрос.
Как отличить обычный массив от многомерного? т.е. если в массиве есть другие массивы, не пробегаясь по ним. | |
|
|
|
|
|
|
|
для: а-я
(28.07.2010 в 12:28)
| | > удалить все записи, если нет значения
Удалить все записи если где нет значения?
> Как отличить обычный массив от многомерного?
Вообще в PHP все массивы одномерные, бывают вложенные массивы, но многомерностью это можно назвать только условно.
> т.е. если в массиве есть другие массивы, не пробегаясь по ним.
По-другому никак, только если где то дополнительно хранить тип массива. | |
|
|
|
|
|
|
|
для: sms-send
(28.07.2010 в 12:43)
| | >> удалить все записи, если нет значения
>Удалить все записи если где нет значения?
>
Да.. т.е. например
<?php
$data = array(array('',' ', 1, 2, 3), 2, 3, '', ' ');
?>
|
| |
|
|
|
|
|
|
|
для: а-я
(28.07.2010 в 12:54)
| | В любом случае нужно обходить массив:
<?
$data = array(array('',' ', 1, 2, 3), 2, 3, '', ' ');
foreach($data as $k=>$v)
if(is_array($v)) $data[$k] = array_diff(array_map('trim', $v), array(''));
else if(!trim($v)) unset($data[$k]);
print_r($data);
|
| |
|
|
|
|
|
|
|
для: а-я
(28.07.2010 в 12:28)
| | 2ой вопрос
<?
$data = array(array('',' ', 1, 2, 3), 2, 3, '', ' ');
echo array_search('Array', array_map('trim', $data))!==false ? "Массив с вложениями" : "Одномерный массив";
|
| |
|
|
|
|
|
|
|
для: sim5
(28.07.2010 в 18:14)
| | Ненадёжный способ, тогда уж gettype вместо trim. | |
|
|
|
|
|
|
|
для: sms-send
(28.07.2010 в 18:31)
| | B чем он не надежен? | |
|
|
|
|
|
|
|
для: sim5
(28.07.2010 в 18:32)
| |
$data = array(' Array ', 2, 3, '', ' '); // "Массив с вложениями"
|
| |
|
|
|
|
|
|
|
для: sms-send
(28.07.2010 в 18:33)
| | И array(2, 3, '', ' ') для решения array_map('gettype', $data) всегда будет Array.
Сейчас найдем другое решение. | |
|
|
|
|
|
|
|
для: sim5
(28.07.2010 в 18:37)
| | Да вроде всё работает как надо..
echo in_array('array', array_map('gettype', $data)) ? "Массив с вложениями" : "Одномерный массив";
|
| |
|
|
|
|
|
|
|
для: sms-send
(28.07.2010 в 18:43)
| | array_search('array'.... из-за.... должно быть в нижнем регистре, потому и не работало. | |
|
|
|
|
|
|
|
для: а-я
(28.07.2010 в 12:28)
| | ого)) спасибо всем) то что надо!) | |
|
|
|