是否可以使用 implode() 作为条件?如果不是,检查数组是否可以内爆的最佳方法是什么?
Is it possible to use implode() as a condition ? If not, what's the best way to check if the array can be imploded?
我想在循环中内爆一个数组。有时这个数组是一个简单的数组,所以它可以工作,有时它是一个多维数组,我的脚本会抛出一个错误。
是否可以这样做:
if (implode($array) ) {
$builded = implode($array);
}
$array 的示例值:
$array1 = ["cat", "dog"] ;
$array2 = [
"cat",
"dog",
1 => ["wolf", "lion"]
] ;
$array3 = [
"cat",
"dog",
1 => []
] ;
implode() 仅适用于 $array1,数组 $2 和 $3 implode() 合法地给我一个错误:Notice: Array to string conversion in C:\Users[...]2_cms_php_functions\class_json.php on line 153
我知道某些函数返回 false 是可能的,例如 if (file_get_contents($file))
。如果不可能,检查数组是否可以内爆的最佳方法是什么?
我知道 if (count($array) == count($array, COUNT_RECURSIVE))
和其他解决方案检查数组是否是多维的,但这不适用于空子数组(我经常遇到这种情况)。
为此,您可以编写一个简单的函数来检查数组是否递归。如果不是,则函数 returns 为真,否则为假,表明它是否可以内爆。
<?php
function canImplode($data){
foreach($data as $val){
if(is_object( $val ) || is_array( $val )) return false;
}
return true;
}
if(canImplode($array)){
$builded = implode($array);
}
我想在循环中内爆一个数组。有时这个数组是一个简单的数组,所以它可以工作,有时它是一个多维数组,我的脚本会抛出一个错误。
是否可以这样做:
if (implode($array) ) {
$builded = implode($array);
}
$array 的示例值:
$array1 = ["cat", "dog"] ;
$array2 = [
"cat",
"dog",
1 => ["wolf", "lion"]
] ;
$array3 = [
"cat",
"dog",
1 => []
] ;
implode() 仅适用于 $array1,数组 $2 和 $3 implode() 合法地给我一个错误:Notice: Array to string conversion in C:\Users[...]2_cms_php_functions\class_json.php on line 153
我知道某些函数返回 false 是可能的,例如 if (file_get_contents($file))
。如果不可能,检查数组是否可以内爆的最佳方法是什么?
我知道 if (count($array) == count($array, COUNT_RECURSIVE))
和其他解决方案检查数组是否是多维的,但这不适用于空子数组(我经常遇到这种情况)。
为此,您可以编写一个简单的函数来检查数组是否递归。如果不是,则函数 returns 为真,否则为假,表明它是否可以内爆。
<?php
function canImplode($data){
foreach($data as $val){
if(is_object( $val ) || is_array( $val )) return false;
}
return true;
}
if(canImplode($array)){
$builded = implode($array);
}