【问题标题】:How to remove dynamic multidimensional array key if that array doesn't have values. using php如果该数组没有值,如何删除动态多维数组键。使用 php
【发布时间】:2016-07-04 10:39:48
【问题描述】:

我有两个名为 $array 和 $array1 的多维数组,键和值是动态的,我能够找到 $array$array1array_diff() 并且我想将数组键打印为表格列名和数组值作为表值。我面临的真正问题是我无法省略没有值的列。在这里,我给出了具有硬编码数组键和值的示例代码。

    <?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>

【问题讨论】:

  • 面临的真正问题是我无法省略没有值的列。 $ar = array_filter($ar);

标签: php arrays multidimensional-array


【解决方案1】:

使用array_maparray_filter 函数。

试试下面的代码,而不是你的 for 循环。

$res = array_map(function($a,$b){
  return [array_filter(array_diff($a,$b))];
},$array,$array1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多