Внедрение массива ... в то время как игнорирование вложенных массивов? - PullRequest
1 голос
/ 17 ноября 2010

Я осмотрелся и увидел много людей, спрашивающих, как взорвать массивы с помощью вложенных массивов.Тем не менее, эти люди обычно хотят также включить вложенный массив.Я не хочу включать вложенный массив ... Я хочу выбросить вложенный массив ...

Это мой массив:

[tag] => Array
(
    [0] => one
    [1] => two
    [0_attr] => Array
        (
            [category] => three
            [lock] => four
        )

    [2] => five
)

Если я взорву этот массив, запятаяс разделителями, я хочу, чтобы результат был:

one, two, five

Обратите внимание, что три и четыре НЕ включены.Поскольку они являются вложенным массивом, я не хочу этого.Я хочу только немедленных ценностей.Как именно я это сделаю?

1 Ответ

1 голос
/ 17 ноября 2010

Вам нужно будет перебрать все значения в $ tag и отфильтровать их в массиве
такие как

$tags = array();
foreach ($tag as $index=>$value)
{
  if (!is_array($value))
  {
     $tags[$index] = $value;
  }
}
implode(',', $tags);

Я нашел, что выше немного утомительно,
вот улучшенная версия

$arr = array(0 => "one", 1 => "two", 2 => array(1,2,3), 3=>4, 4=>new stdClass);
echo implode(",", array_filter($arr, "is_scalar"));

вывод:

one,two,4
...