查找数组键

时间:2010-04-11 10:00:57

标签: php arrays key

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

$array[0]['width'] = '100';
$array[0]['height'] = '200';
$array[2]['width'] = '150';
$array[2]['height'] = '250';
  • 我不知道数组中有多少项。
  • 可以删除一些项目,解释丢失的[1]键。

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

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

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

另一种解决方案是找到最后一个密钥。我没有尝试'结束'功能。

5 个答案:

答案 0 :(得分:9)

正确的方法是:

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

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

答案 1 :(得分:5)

怎么样

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

答案 2 :(得分:3)

或者,只是为了完整性和显而易见性,使用临时数组:

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

然后将其添加到主阵列:

$array[]=$t;

答案 3 :(得分:2)

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

$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;

答案 4 :(得分:1)

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

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

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

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

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