将二维数组分别写出相交的值,怎么叙说呢,看下面的图
其实数组维数固定将很好,譬如下面代码
$data=array(
array(1,2,2017)
,array(5,6,7)
,array(95,96,97)
);
list($a,$b,$c)=$data;
foreach($aas$k1=> $v1){
foreach($bas$k2=> $v2){
foreach($cas$k3=> $v3){
echo$v1.'-'.$v2.'-'.$v3.PHP_EOL;
}
}
}
那么问题来了 要是数组维数不是固定的呢,这就开始引入正题了,用eval,代码如下
function hashHero($data){
eval('$str='.var_export($data,true).';');
$for='$out=array();';
foreach($data as $k => $v ) $for.='foreach('.var_export($v,true).' as $k'.$k.'=> $v'.$k.')';
$valas='';
foreach($data as $k => $v )
if( sizeof($data)-1==$k )$for.='array_push($out,'.$valas.'$v'.$k.');';
else $valas.='$v'.$k.'.",".';
eval($for);
return $out;
}
eval毕竟是一个比较危险的函数,用时需小心
是不是很简单