如何强制元素为数组形式(在php中)

| 我有代码遍历元素数组本身就是数组。该代码对2个或更多此类元素有效。但是,它不适用于一个数组\“ element \”(因为它开始遍历其每个子元素)。 我的代码:
  foreach($list as $element)
  ...
在大多数情况下,$ list是:
Array
(
    [0] => Array
        (
            [a] => \'abc\'
            [b] => \'bcd\'
        )

    [1] => Array
        (
            [a] => \'abc\'
            [b] => \'bcd\'
        )
)
ehich工作正常,但是如果$ list是:
 Array
 (
    [a] => \'abc\'
    [b] => \'bcd\'
  )
显然,我的代码现在已经搞砸了,因为foreach将遍历\'a \'和\'b \'。 我要转换:
 Array
 (
    [a] => \'abc\'
    [b] => \'bcd\'
  )
变成:
Array
(
    [0] => Array
        (
            [a] => \'abc\'
            [b] => \'bcd\'
        )
 )
以最有效的方式!     
已邀请:
使用
is_array()
(链接)检测传递的项目是否为数组。然后,您可以进行相应处理。
foreach($somethingarray[\'something\'] as $something) {
    if(is_array($something)) {
        // do something with array
    } else {
        // do something with non array
    }
}
在http://www.phplint.com/上运行此命令,以查看针对您的评论@Frank D的结果。
echo \'<pre>\';
$var = array( \'my_var\' => array( \'my_value\' ) );
var_dump( $var );
$var2 = array( $var );
var_dump( $var2 );
echo \'</pre>\';
    
使用(数组)将变量强制为数组,如下所示:
foreach ((array)$somethingarray[\'something\'] as $something) { /* $something is first array\'s element... And the only if you casted your \"not-array\" into an array by (array) */ }
    
如您所知,foreach将遍历数组中的每个元素。如果数组为空,则不会执行任何操作。因此,您可以简单地执行$ var = array();。设置一个空数组。 更好的解决方案是在执行foreach语句之前,使用in_array()检查输入是否为数组。     
小心如何插入第一个元素 永远不要让$ list成为
Array
(
   [a] => \'abc\'
   [b] => \'bcd\'
)
所以
//create your first element as
$firstElement=array(\'a\'=>\'abc\',\'b\'=>\'bcd\');
$list[] = $firstElement;                 
// or in one sentence:  $list[] = array(\'a\'=>\'abc\', \'b\'=>\'bcd\');
// call your function here for one elment array
yourFunc($list)

// and so on the same way (how did you made the two elements $list array?)
$secondElement = array(\'a\'=>\'abc\', \'b\'=>\'bcd\');
$list[] = $secondElement;
// call your function here for two elments array
yourFunc($list)
    
最后检查单个元素,如果特定元素(已知仅存在于数组数组中)位于底层,则执行以下操作:
 $list = Array 
  ( 
    [0] => $list
  ) ;
    

要回复问题请先登录注册