我在数组中有 100 个值,需要检查前十个值是否为空,如果没有取消设置值,所有元素应该是相同的计数,我使用“|” 用于梳理所有值,
我所有的价值观都用“|”内爆 下面是我使用的函数,我没有按要求得到最终结果,下面给出了最终值,你能帮忙解决这个问题吗
finalvalues =array(
"3" =>"Education|Category|Roles|Industry|Address|Email|Phone|Mobile",
"4" => "Bsc|computer|SE|Computers||test@test.com|123123132|123234234234"
);
$values = array(
"0"=> "Computer Student History",
"1"=> "Computer Student History",
"2"=> "Computer Student History|batch number",
"3" => "| | | | | | | | | | | | | | | | ",
"4" => "Education|Category|Roles|Industry|Address|Email|Phone|Mobile",
"5" => "Bsc|computer|SE|Computers||test@test.com|123123132|123234234234"
);
$newVal = array();
foreach ($values as $key => $val) { //$values it is..
$prevalues = explode('|', $val);
$finalvalue = array_empty($prevalues ,$full_null=true);
if($finalvalue == 1){
unset($prevalues); //why??
}else{
$vales = implode('|', $prevalues);
$newVal[$key] = $vales; //use $key, to preserve the keys here..
}
}
print_r($newVal); //output
function array_empty($ary, $full_null=false){
unset($prevKey);
$count = array();
$null_count = 0;
$ary_count = count($ary);
if ($ary_count == 1) //this means there was no '|', hence no split.
return 1;
foreach($array_keys($ary) as $value){
// echo $value;
//trying check if first value is less then second value unset array similar second is less then third value unset second .. so the all the array values is same count
$count[$value] = count($ary[$value]);
if (isset($prevKey) && $count[$prevKey] !== $count[$value]) {
//unset($array[$prevKey]);
return 1;
}
if($value == NULL || trim($value) == "" ){ // trim(..) was what you wanted.
$null_count++;
}
}
if($full_null == true){
if($null_count == $ary_count){
return 1;
}else{
return 0;
}
}
}