Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 程序员如何处理在运行时向数组中添加此类内容所产生的问题?_Php - Fatal编程技术网

Php 程序员如何处理在运行时向数组中添加此类内容所产生的问题?

Php 程序员如何处理在运行时向数组中添加此类内容所产生的问题?,php,Php,我问的数组问题可以在这段代码中看到 $sample=array('2'=>"A", "abc"=>"B", 2=>"C"); $sample_keys=array_keys($sample); foreach ($sample_keys as $keys) { echo $keys, $sample[$keys],"\n"; } The output is 2C abcB $sample[0]出现错误,$sample[1]也出现错误。 程序员如何处理在运行时向数组中添

我问的数组问题可以在这段代码中看到

$sample=array('2'=>"A", "abc"=>"B", 2=>"C");
$sample_keys=array_keys($sample);
foreach ($sample_keys as $keys)
{
   echo $keys, $sample[$keys],"\n";
}

The output is
2C
abcB
$sample[0]出现错误,$sample[1]也出现错误。

程序员如何处理在运行时向数组中添加此类内容所产生的问题?
我是php新手

循环数组的正确方法是:

$sample=array('2'=>"A", "abc"=>"B", 2=>"C");
foreach ($sample as $k => $v)
{
   echo "key=$k,value=$v,"\n";
}

所以PHP没有运行时问题,比如说C++。foreach知道数组何时结束。

根据:“包含有效整数的字符串将转换为整数类型。例如,键“8”实际上存储在8下。另一方面,“08”不会转换,因为它不是有效的十进制整数。”

因此,在代码中:

$sample_keys=array_keys($sample);
变量
$sample\u keys
仅包含值
2
abc

就您的注释而言,“
$sample[0]
给出了一个错误,
$sample[1]
,”他们当然会这样做。您的数组不包含键
0
1
。它包含
2
abc


程序员可以在运行时通过提前计划可以添加到数组中的可能值来控制这类事情。如有必要,他可以使用
array\u key\u exists
等函数来确定给定的键是否在数组中,并根据需要进行调整。

我不太理解您的问题,但您已经定义了数组的键和值。因此,要访问实际使用的第一个元素,第二个元素是
$sample['2']
,第三个元素是
$sample['abc']。希望这能有所帮助。当您从未在代码片段的第一行定义过该键时,为什么您希望会出现
$sample[0]
?@AurelioDeRosa:虽然这是一种迂回的方法,但确实有效。请注意,迭代已结束。
$sample\u keys
$sample\u keys
的每个值都是
$sample
中的一个键。