向现有阵列添加索引键

时间:2013-04-01 21:05:05

标签: php arrays associative-array

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

数组看起来像这样:

[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]。 Doe = s有人有想法吗?

2 个答案:

答案 0 :(得分:2)

我会检查值而不是键。听起来你只需要检查第一个值就可以了:

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

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

if (!is_assoc($preview)) {
  $preview = array($preview);
}

答案 1 :(得分:1)

不同的方式:

if(!isset($array[0])) {
    $array[0] = $array;
}