【问题标题】:Find array keys查找数组键
【发布时间】:2010-04-11 10:00:56
【问题描述】:

在 PHP 中,我有一个如下所示的数组:

$array[0]['width'] = '100';
$array[0]['height'] = '200';
$array[2]['width'] = '150';
$array[2]['height'] = '250';
  • 我不知道数组中有多少项。
  • 可以删除某些项目,这说明缺少 [1] 键。

我想在此之后添加一个新项目,如下所示:

$array[]['width'] = '300';
$array[]['height'] = '500';

但是上面的代码不起作用,因为它为每一行添加了一个新键。上面两行应该是一样的。一个聪明的方法来解决它?

另一种解决方案是找到最后一个键。我尝试“结束”功能失败。

【问题讨论】:

  • 只想加注:给$array[]加值等于创建新key。您可以使用以下几种解决方案来实现您的目标。

标签: php arrays key


【解决方案1】:

正确的做法是:

$array[] = array(
  'width' => 200,
  'height' => 500,
);

因为您实际上是在向$array 添加一个新数组。

【讨论】:

    【解决方案2】:

    怎么样

    $array[] = array("width" => "300", "height" => "500");
    

    【讨论】:

      【解决方案3】:

      或者,为了完整和清晰,使用一个临时数组:

      $t=array();
      $t['width']='300';
      $t['height']='500';
      

      然后将其添加到主数组中:

      $array[]=$t;
      

      【讨论】:

        【解决方案4】:

        另一种解决方案,当您无法在单个语句中添加两个值时很有用:

        $a = array();
        $array[] &= $a; // Append a reference to the array, instead of a copy
        
        $a['width'] = '300';
        $a['height'] = '500';
        

        但您也可以检索数组中的最后一个键:

        $array[]['width'] = '300';
        
        end($array); // Make sure the internal array pointer is at the last item
        $key = key($array);  // Get the key of the last item
        
        $array[$key]['height'] = 300;
        

        【讨论】:

        • 我什至没有意识到您可以在 PHP 中分配引用。谢谢。
        【解决方案5】:

        如果您不介意丢失这些键,您可以通过重新索引轻松解决问题。

        $array = array_values($array);
        $i = count($array);
        $array[$i]['width'] = '300';
        $array[$i]['height'] = '500';
        

        但是,如果你不想这样做,你也可以使用这个:

        $array[] = array(
            'width' => '300',
            'height' => '500'
        );
        

        这将创建一个新数组并将其作为第二维插入。

        【讨论】:

          猜你喜欢
          • 2011-01-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-28
          • 1970-01-01
          • 1970-01-01
          • 2013-03-09
          • 2014-05-11
          相关资源
          最近更新 更多