使用数组函数php定位next()和prev()

使用数组函数php定位next()和prev(),php,arrays,next,Php,Arrays,Next,我有下面的代码 <?php $people = array("patrick", "wumbo", "wambo", "Peter", "Joe", "Glenn", "Cleveland"); echo current($people) . "<br>"; echo next($people) . "<br>"; echo prev($people); ?> 更新问题 我已经试过了,但从昨晚开始就不知道了。像这样的事 $current= "Joe

我有下面的代码

<?php
$people = array("patrick", "wumbo", "wambo", "Peter", "Joe", "Glenn", "Cleveland");

echo current($people) . "<br>";
echo next($people) . "<br>";
echo prev($people);
?>
更新问题 我已经试过了,但从昨晚开始就不知道了。

像这样的事

    $current= "Joe";

    $people = array("patrick", "wumbo", "wambo", "Peter", "Joe", "Glenn", "Cleveland");
    $pos    = array_search($current, $people);

    foreach($people as $key => $value) {

        if($key < $pos) {

            $prev[] = $value;

        } elseif($key > $pos) {

            $next[] = $value;

        }

    }

    foreach($prev as $item) {
        echo "$item ";
    }
    echo "<br />";
    foreach($next as $item) {
        echo "$item ";
    }
更新2

<?php

        function getSubObj($string, $verb) {

            $parts  = explode(" ", $string);
            $pos    = array_search($verb, $parts);

            foreach($parts as $key => $value) {

                if($key < $pos) {

                    $subjects[] = $value;

                } elseif($key > $pos) {

                    $objects[]  = $value;

                }

            }

            return array($subjects, $objects);

        }

        list($subjects, $objects) = getSubObj("Brother see the moon", "see");

        echo "<h2>Subjects</h2>";
        foreach($subjects as $item) {
            echo "$item ";
        }

        echo "<h2>Objects</h2>";
        foreach($objects as $item) {
            echo "$item ";
        }


?>

输出:

试试这个

<?php
$people = array("patrick", "wumbo", "wambo", "Peter", "Joe", "Glenn", "Cleveland");


$key=array_search("Joe",$people);
$next=array();
$prev=array();
for($i=$key+1;$i<count($people);$i++)
{
$next[]=$people[$i];
}

for($i=$key-1;$i >0;$i--)
{
$prev[]=$people[$i];
}

echo "Current:".$people[$key];
 echo "</br>";
echo "Next:".implode(",",$next);
 echo "</br>";
echo "prev:".implode(",",$prev);
?>

通过数组_切片使其变得简单

$key=array_search("Joe",$people);
echo "Current:".$people[$key] . "\n" .
     "Prev:".implode(",", array_slice($people, 0, $key)) . "\n" .
     "Next:".implode(",", array_slice($people, $key+1));

谢谢大家的支持

嗯,如果我有下面这样的字符串

$text = "Brother see the moon";
我在代码中签名,将“see”作为动词

“see”前面的所有数组都作为主题


“see”之后的所有数组都是对象

谢谢的Emil,但是我可以不打印就显示数组吗?就像echo.Ya一样,它对我有用,我对我的代码有一个问题,$text=“Brother See the moon”;我能用上面的代码吗?嗨,爱弥儿,我能用for循环爆出“兄弟看月亮”吗?嗨!为什么要使用for循环?在我的示例中使用explode()。更新您的问题并解释您的问题。感谢Deena的指导,我的代码很复杂,但我可以这样解释代码,希望对我有所帮助。我马上回来再通知你我的结果。关于'sHi Deena,我有一个问题,嗯,如果我有一个字符串,比如,$text=“Brother see the moon”;我在我的代码中签名,将“see”作为动词,“see”之前的所有数组作为主语,“see”之后的所有数组作为对象如何在我的代码中使用next()和prev()?感谢splash58的帮助,我将再次通知您在我的代码中应用上述内容。
<?php

        function getSubObj($string, $verb) {

            $parts  = explode(" ", $string);
            $pos    = array_search($verb, $parts);

            foreach($parts as $key => $value) {

                if($key < $pos) {

                    $subjects[] = $value;

                } elseif($key > $pos) {

                    $objects[]  = $value;

                }

            }

            return array($subjects, $objects);

        }

        list($subjects, $objects) = getSubObj("Brother see the moon", "see");

        echo "<h2>Subjects</h2>";
        foreach($subjects as $item) {
            echo "$item ";
        }

        echo "<h2>Objects</h2>";
        foreach($objects as $item) {
            echo "$item ";
        }


?>
<?php
$people = array("patrick", "wumbo", "wambo", "Peter", "Joe", "Glenn", "Cleveland");


$key=array_search("Joe",$people);
$next=array();
$prev=array();
for($i=$key+1;$i<count($people);$i++)
{
$next[]=$people[$i];
}

for($i=$key-1;$i >0;$i--)
{
$prev[]=$people[$i];
}

echo "Current:".$people[$key];
 echo "</br>";
echo "Next:".implode(",",$next);
 echo "</br>";
echo "prev:".implode(",",$prev);
?>
Current:Joe
Next:Glenn,Cleveland
prev:Peter,wambo wumbo
$key=array_search("Joe",$people);
echo "Current:".$people[$key] . "\n" .
     "Prev:".implode(",", array_slice($people, 0, $key)) . "\n" .
     "Next:".implode(",", array_slice($people, $key+1));
$text = "Brother see the moon";