Php 添加到有限大小的数组
我有一个非常复杂的情况,我不能想出一个完美的逻辑。 以下是我需要做的: 我通过API获取了10篇文章,我需要按正确的后序显示它们。问题是有时文章会自动改变顺序。我需要做的是,无论他们是否更改了他们在我页面上的顺序,他们的顺序都保持不变。 例如,如果 数组('itemA','itemB','itemC','itemD') 变成 数组('itemC','itemA','itemB','itemD') 我仍然想按原来的顺序展示,即A、B、C和D项 我尝试在_array()函数中检查文章是否已经存在,但它似乎无法正常工作 看一看:Php 添加到有限大小的数组,php,arrays,foreach,Php,Arrays,Foreach,我有一个非常复杂的情况,我不能想出一个完美的逻辑。 以下是我需要做的: 我通过API获取了10篇文章,我需要按正确的后序显示它们。问题是有时文章会自动改变顺序。我需要做的是,无论他们是否更改了他们在我页面上的顺序,他们的顺序都保持不变。 例如,如果 数组('itemA','itemB','itemC','itemD') 变成 数组('itemC','itemA','itemB','itemD') 我仍然想按原来的顺序展示,即A、B、C和D项 我尝试在_array()函数中检查文章是否已经存在,但
$post_array = array();
foreach ($Info AS $key => $post_array){
if (!in_array($Info[$key]->postId, $post_array)){
array_unshift($post_array, $Info[$key]);
echo '<h2>Added</h2>' ;
}else {
echo '<h2>not Added</h2>' ;
}
}
$post_array=array();
foreach($Info AS$key=>$post_数组){
if(!in_数组($Info[$key]>postd$post_数组)){
数组_unshift($post_数组,$Info[$key]);
echo“添加”;
}否则{
回声“未添加”;
}
}
每次我运行它时都会加上一句警告语
警告:array_unshift()要求参数1为array
警告:in_array()要求参数2为数组
我真正想做的是,首先将所有10篇文章添加到$post_数组中,然后在开始时只将新的/唯一的文章添加到$post_数组中。并显示$post_数组中的10项
而且,我不认为我能通过这件事实现我想要的
请注意。似乎有些多余:
if (!in_array($Info[$key]->postId, $post_array)){
在运行此命令时,$post_数组已经与$Info[$key]的值相同,因为您的foreach是:
foreach ($Info AS $key => $post_array){
假设那些$Info[$key]值是子数组,那么您的in_数组调用是向后的,语法是
in_array($array, $value_to_find)
但你在做什么
in_array($value_to_find, $array);
in_数组需要数组,un_移位也需要数组。将foreach放入一维数组将使其成为字符串。不是arrayyea,有道理。但我想不出别的办法。我不是问确切的答案,只是给我指出正确的方向。请