基本数组引用Php
如何引用以下动态数组的元素基本数组引用Php,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,如何引用以下动态数组的元素 $log = array(); $arr1 = array ('a'=>'6:16pm','b'=>2,'c'=>3,'d'=>4,'e'=>5); $arr2 = array ('a'=>'6:24pm','b'=>20,'c'=>30,'d'=>40,'e'=>50); $log = array_merge($log, array($arr1['a']=>$arr1)); $log = ar
$log = array();
$arr1 = array ('a'=>'6:16pm','b'=>2,'c'=>3,'d'=>4,'e'=>5);
$arr2 = array ('a'=>'6:24pm','b'=>20,'c'=>30,'d'=>40,'e'=>50);
$log = array_merge($log, array($arr1['a']=>$arr1));
$log = array_merge($log, array($arr2['a']=>$arr2)); //<-- to use time as key
print_r($log);
for ($x = 0; $x < count($log); $x++) {
print_r ($log[0][$x]['a']); // <-- referencing issue Undefined offset: 0 .. line 20
}
//------ produces
Array
(
[6:16pm] => Array
(
[a] => 6:16pm
[b] => 2
[c] => 3
[d] => 4
[e] => 5
)
[6:24pm] => Array
(
[a] => 6:24pm
[b] => 20
[c] => 30
[d] => 40
[e] => 50
)
)
$log=array();
$arr1=array('a'=>6:16pm'、'b'=>2、'c'=>3、'd'=>4、'e'=>5);
$arr2=数组('a'=>6:24pm','b'=>20,'c'=>30,'d'=>40,'e'=>50);
$log=array_merge($log,array($arr1['a']=>$arr1));
$log=array_merge($log,array($arr2['a']=>$arr2));//下午6:16
[b] =>2
[c] =>3
[d] =>4
[e] =>5
)
[6:24pm]=>阵列
(
[a] =>下午6:24
[b] =>20
[c] =>30
[d] =>40
[e] =>50
)
)
我很确定这与我命名$log主数组的方式有关。。也许有更好的方法来实现我的愿望(…使用time键向$log添加/添加新元素)-不幸的是,这仍然是一个PHPNoob。感谢您的指点。如果您不知道您的密钥,建议您使用foreach语句:
$logs = array();
$arr1 = array ('a'=>'6:16pm','b'=>2,'c'=>3,'d'=>4,'e'=>5);
$arr2 = array ('a'=>'6:24pm','b'=>20,'c'=>30,'d'=>40,'e'=>50);
$logs = array_merge($logs, array($arr1['a']=>$arr1));
$logs = array_merge($logs, array($arr2['a']=>$arr2)); //<-- to use time as key
$logs = array();
$arr1 = array('a' => '6:16pm', 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
$arr2 = array('a' => '6:24pm', 'b' => 20, 'c' => 30, 'd' => 40, 'e' => 50);
$logs = array_merge($logs, array($arr1['a'] => $arr1));
$logs = array_merge($logs, array($arr2['a'] => $arr2)); //<-- to use time as key
foreach ($logs as $time => $log) {
//index:
print_r($time);
//array:
print_r($log);
// a array key:
print_r($log['a']);
//go through all keys:
foreach ($log as $letter => $value) {
//index:
print_r($letter);
//value: a
print_r($value);
}
}
$logs=array();
$arr1=array('a'=>6:16pm'、'b'=>2、'c'=>3、'd'=>4、'e'=>5);
$arr2=数组('a'=>6:24pm','b'=>20,'c'=>30,'d'=>40,'e'=>50);
$logs=array_merge($logs,array($arr1['a']=>$arr1));
$logs=array_merge($logs,array($arr2['a']=>$arr2));//下午6时16分,“b”大于2,“c”大于3,“d”大于4,“e”大于5);
$arr2=array('a'=>6:24pm','b'=>20,'c'=>30,'d'=>40,'e'=>50);
$logs=array_merge($logs,array($arr1['a']=>$arr1));
$logs=array_merge($logs,array($arr2['a']=>$arr2));//$日志){
//索引:
打印(时间);
//数组:
打印(日志);
//数组键:
打印($log['a']);
//检查所有键:
foreach($log as$letter=>$value){
//索引:
打印(字母);
//价值:a
打印(价值);
}
}
如果您不知道您的密钥,建议您使用foreach语句:
$logs = array();
$arr1 = array ('a'=>'6:16pm','b'=>2,'c'=>3,'d'=>4,'e'=>5);
$arr2 = array ('a'=>'6:24pm','b'=>20,'c'=>30,'d'=>40,'e'=>50);
$logs = array_merge($logs, array($arr1['a']=>$arr1));
$logs = array_merge($logs, array($arr2['a']=>$arr2)); //<-- to use time as key
$logs = array();
$arr1 = array('a' => '6:16pm', 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
$arr2 = array('a' => '6:24pm', 'b' => 20, 'c' => 30, 'd' => 40, 'e' => 50);
$logs = array_merge($logs, array($arr1['a'] => $arr1));
$logs = array_merge($logs, array($arr2['a'] => $arr2)); //<-- to use time as key
foreach ($logs as $time => $log) {
//index:
print_r($time);
//array:
print_r($log);
// a array key:
print_r($log['a']);
//go through all keys:
foreach ($log as $letter => $value) {
//index:
print_r($letter);
//value: a
print_r($value);
}
}
$logs=array();
$arr1=array('a'=>6:16pm'、'b'=>2、'c'=>3、'd'=>4、'e'=>5);
$arr2=数组('a'=>6:24pm','b'=>20,'c'=>30,'d'=>40,'e'=>50);
$logs=array_merge($logs,array($arr1['a']=>$arr1));
$logs=array_merge($logs,array($arr2['a']=>$arr2));//下午6时16分,“b”大于2,“c”大于3,“d”大于4,“e”大于5);
$arr2=array('a'=>6:24pm','b'=>20,'c'=>30,'d'=>40,'e'=>50);
$logs=array_merge($logs,array($arr1['a']=>$arr1));
$logs=array_merge($logs,array($arr2['a']=>$arr2));//$日志){
//索引:
打印(时间);
//数组:
打印(日志);
//数组键:
打印($log['a']);
//检查所有键:
foreach($log as$letter=>$value){
//索引:
打印(字母);
//价值:a
打印(价值);
}
}
有点不清楚,但只需从这两个元素中创建一个数组,然后使用a
索引:
$log = array($arr1, $arr2);
foreach($log as $values) {
echo $values['a']; // 6:16pm
}
或者,如果希望将时间作为索引,则在a
上重新索引:
$log = array($arr1, $arr2);
$log = array_column($log, null, 'a');
foreach($log as $time => $values) {
echo $time; // 6:16pm
echo $values['b']; // 2
}
它更漂亮,但不需要时间作为索引,除非您要使用ksort
或按索引访问:
echo $log['6:16pm']['b'];
这有点不清楚,但只需从这两个元素中创建一个数组并使用
a
索引:
$log = array($arr1, $arr2);
foreach($log as $values) {
echo $values['a']; // 6:16pm
}
或者,如果希望将时间作为索引,则在a
上重新索引:
$log = array($arr1, $arr2);
$log = array_column($log, null, 'a');
foreach($log as $time => $values) {
echo $time; // 6:16pm
echo $values['b']; // 2
}
它更漂亮,但不需要时间作为索引,除非您要使用ksort
或按索引访问:
echo $log['6:16pm']['b'];
不能像这样调用数组
print_r ($log[0]);
因为您的数组具有密钥。第一个是下午6点16分,第二个是下午6点24分。您必须通过指定的键名来调用它。在任何地方,甚至在循环中,都应该这样调用数组
print_r ($log["6:16pm"]);
不能像这样调用数组
print_r ($log[0]);
因为您的数组具有密钥。第一个是下午6点16分,第二个是下午6点24分。您必须通过指定的键名来调用它。在任何地方,甚至在循环中,都应该这样调用数组
print_r ($log["6:16pm"]);
问题出在哪里?for循环显示$log[0]。。([$x]['a'])未定义。我试过各种组合……所以。。。。数组中是否有名为0的键?(不,你没有)。我希望有一种方法可以引用动态生成的密钥。。。因此,我可以确定稍后需要删除哪个日志记录。谢谢,顺便说一句。请通过编辑添加所有问题的澄清。问题在哪里?for循环显示$log[0]。。([$x]['a'])未定义。我试过各种组合……所以。。。。数组中是否有名为0的键?(不,你没有)。我希望有一种方法可以引用动态生成的密钥。。。因此,我可以确定稍后需要删除哪个日志记录。谢谢顺便说一句。请通过编辑来为您的问题添加所有澄清。非常感谢。我学到了一些东西…(向上投票)太好了,谢谢你。我学到了一些东西…(向上投票)接受了第二种解决方案“数组列”。接受了第二种解决方案“数组列”。