-1

我有一个数组,我需要检查它是否是关联的。

该数组可能如下所示:

[preview] => Array
    (
        [0] => Array
            (
                [type] => web
                [side] => left
            )
        [1] => Array
           (
               [type] => web
               [side] => right

           )
      )

这是完美的。但有时,我得到这个:

   [preview_file] => Array
       (
        [type] => artwork
        [side] => right
       )

在这种情况下,我需要添加一个索引0来使数组看起来像这样:

    [preview_file] => Array
       (
        [0] => Array
          (
           [type] => artwork
           [side] => right
          )

       )

我正在使用这个函数来检查它是否是关联的:

 function is_assoc($array) {
     return (bool)count(array_filter(array_keys($array), 'is_string'));
 }

如果没有,我需要以某种方式添加[0]. 有没有人有想法?

4

2 回答 2

2

我会检查值而不是键。听起来您只需检查第一个值就可以逃脱:

function is_assoc($array) {
  return is_array(reset($array));
}

您的问题是关于如何进行实际更改?这应该有效:

if (!is_assoc($preview)) {
  $preview = array($preview);
}
于 2013-04-01T21:09:05.740 回答
1

不同的方式:

if(!isset($array[0])) {
    $array[0] = $array;
}
于 2013-04-01T21:09:30.753 回答