2016-07-04 8 views
1

私は$ arrayと$array1という2つの多次元配列を持っていますが、キーと値は動的です。array_diff()$array$array1であり、テーブルの列名と配列の値としてテーブルとして表示したい値。実際の問題は、値を持たない列を省略できないということです。ここでは、ハードコードされた配列キーと値を持つサンプルコードを提供しています。動的多次元配列キーがその配列に値を持たない場合、それを削除する方法。

<?php 
error_reporting(0); 
$array[0] = array("key1" => "valueNew", "key2" => "Array2", "key3" => "value3", "key4" => "value4"); 
$array[1] = array("key1" => "valuetwo", "key2" => "Array2", "key3" => "value3", "key4" => "value4"); 
$array[2] = array("key1" => "valueThree", "key2" => "Array2", "key3" => "value3", "key4" => "value4"); 

$array1[0] = array("key1" => "Array1", "key2" => "Array2", "key3" => "Array3", "key4" => "Array4"); 
$array1[1] = array("key1" => "Array1", "key2" => "Array2", "key3" => "Array3", "key4" => "Array4"); 
$array1[2] = array("key1" => "Array1", "key2" => "Array2", "key3" => "Array3", "key4" => "Array4"); 


for($i=0;$i<count($array);$i++){ 
$implode[$i]=array_diff($array[$i],$array1[$i]); 

} 
$arrayKeys=array_keys($array[0]); 

?> 
<table width="200" border="1"> 
    <tr> 
    <?php 
    for($i=0;$i<count($arrayKeys);$i++){ 
    ?> 
    <th scope="col"><?php echo $arrayKeys[$i]; ?></th> 
    <?php 
    } 
    ?> 
</tr> 
    <tr> 
    <?php 
    for($i=0;$i<count($arrayKeys);$i++) 
    { 
    ?> 
    <td><?php for($j=0;$j<count($implode);$j++) 
    { 
     echo $implode[$j][$arrayKeys[$i]]."<br>"; 
    } ?></td> 
     <?php 
    } 
    ?> 
    </tr> 
</table> 
+0

*本当の問題は、値を持たない列を省略できないことです。* '$ ar = array_filter($ ar);' – splash58

答えて

0

使用array_maparray_filter機能。

forループの代わりに以下のコードを試してください。

$res = array_map(function($a,$b){ 
    return [array_filter(array_diff($a,$b))]; 
},$array,$array1); 
関連する問題