Php 添加到有限大小的数组

Php 添加到有限大小的数组,php,arrays,foreach,Php,Arrays,Foreach,我有一个非常复杂的情况,我不能想出一个完美的逻辑。 以下是我需要做的: 我通过API获取了10篇文章,我需要按正确的后序显示它们。问题是有时文章会自动改变顺序。我需要做的是,无论他们是否更改了他们在我页面上的顺序,他们的顺序都保持不变。 例如,如果 数组('itemA','itemB','itemC','itemD') 变成 数组('itemC','itemA','itemB','itemD') 我仍然想按原来的顺序展示,即A、B、C和D项 我尝试在_array()函数中检查文章是否已经存在,但

我有一个非常复杂的情况,我不能想出一个完美的逻辑。 以下是我需要做的: 我通过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,有道理。但我想不出别的办法。我不是问确切的答案,只是给我指出正确的方向。请