如何找到php数组的新附加键值?
我有一个类,存储有关照片的信息。为了让我保持诚实,它有一群公开的“能手”和“二传手”。当公开添加关于照片的评论时,如下所示:如何找到php数组的新附加键值?,php,arrays,Php,Arrays,我有一个类,存储有关照片的信息。为了让我保持诚实,它有一群公开的“能手”和“二传手”。当公开添加关于照片的评论时,如下所示: $photo->addComment('Blue'); $comments[] = array('comment'=>$new_comment,'time'=>$new_time,'user'=>$new_user); 该类将调用另一个函数,该函数将注释添加到私有注释数组中,如下所示: $photo->addComment('Blue')
$photo->addComment('Blue');
$comments[] = array('comment'=>$new_comment,'time'=>$new_time,'user'=>$new_user);
该类将调用另一个函数,该函数将注释添加到私有注释数组中,如下所示:
$photo->addComment('Blue');
$comments[] = array('comment'=>$new_comment,'time'=>$new_time,'user'=>$new_user);
确定新的$key
的最佳方法是什么,新的刚刚创建,以便回送$comments[$key]['comment']代码>将打印“蓝色”?尝试以下操作:
$key = sizeof($comments) - 1
试试这个:
$key = sizeof($comments) - 1
您可以使用end
功能()
如果您的目标是打印“蓝色”,这是您最直接的解决方案:
echo end($comments)['comment']
注意:本例使用PHP5.4()中引入的数组解引用。您可以使用end
函数()
如果您的目标是打印“蓝色”,这是您最直接的解决方案:
echo end($comments)['comment']
注意:此示例使用PHP 5.4()中引入的数组解引用。对于更精确的方法,类似的方法可能会起作用:
$keys = array_keys($comments); // get just the keys
$reverse = array_reverse($keys); // reverse order
$lastKey = $keys[0]; // get what is now the first key
将允许在索引方面存在差距,以获得更准确的方法,类似的方法可能会奏效:
$keys = array_keys($comments); // get just the keys
$reverse = array_reverse($keys); // reverse order
$lastKey = $keys[0]; // get what is now the first key
将允许索引中的空白这是一个技巧性问题吗?您可以让您的addComment()
方法返回上次插入的索引。$comment=end($comments);echo$comment['comment']
@NullUserException这更像我要找的。调用键(end($comments))
就足够了吗?即使同时添加了另一条评论。@buster:nokey
以及end
接受对数组的引用。这是一个技巧性问题吗?您可以让您的addComment()
方法返回上次插入的索引。$comment=end($comments);echo$comment['comment']
@NullUserException这更像我要找的。调用键(end($comments))
就足够了吗?即使同时添加了另一条评论。@buster:nokey
以及end
接受对数组的引用。$comments=array('a'=>1)$评论[]='q';var_dump(注释)
它不会在所有情况下都起作用,但只有当数组的数字索引没有间隙时才起作用。$comments[]=…
表明情况就是这样。@Salman A:看我的例子。我还使用了$comments[]
-因此它不能保证任何$comments=array('a'=>1)$评论[]='q';var_dump(注释)
它不会在所有情况下都起作用,但只有当数组的数字索引没有间隙时才起作用。$comments[]=…
表明情况就是这样。@Salman A:看我的例子。我还使用了$comments[]
-因此它不能保证任何值得添加php版本要求的东西。@Elliot B.:“使用相同的语法”--其中?@Elliot B.:在最初的帖子中,它是通用数组访问语法,从php 3开始就可以使用。您的代码使用PHP5.4中引入的数组解引用$comments[$key]['comment']
不等于end($comments)['comment']
添加php版本要求是值得的。@Elliot B.:“使用相同的语法”--其中?@Elliot B:在最初的帖子中,它是通用的数组访问语法,从php 3开始就可以使用。您的代码使用PHP5.4中引入的数组解引用$comments[$key]['comment']
不等于end($comments)['comment']
如果可以只$lastKey=end($key),为什么要执行反向操作代码>如果可以只执行$lastKey=end($keys),为什么要执行反向操作代码>我不能说我非常喜欢弄乱数组的内部指针。@NullUserException♦: 我也是,但这是一个微不足道的解决方案。如果此项符合要求,则没有理由过度复杂。在将新的$key
提交到文件或sql之前,两个用户是否可以同时发布<代码>$key
对于2个用户可能相同。使用数据库中的自动增量列或序列以独特的方式寻址注释。我不能说我非常喜欢弄乱数组的内部指针。@NullUserException♦: 我也是,但这是一个微不足道的解决方案。如果此项符合要求,则没有理由过度复杂。在将新的$key
提交到文件或sql之前,两个用户是否可以同时发布<代码>$key
对于2个用户可能相同。使用数据库中的自动增量列或序列以独特的方式寻址注释。