为了账号安全,请及时绑定邮箱和手机立即绑定

查找下一个并在数组中预览元素

查找下一个并在数组中预览元素

PHP
DIEA 2023-10-22 20:48:26
我是PHP的初学者。我有这个数组:$array = array(    ['name' => 'project 1', 'url' => 'www.name1.com', 'photo' => '1.jpg'],    ['name' => 'project 2', 'url' => 'www.name2.com', 'photo' => '2.jpg'],    ['name' => 'project 3', 'url' => 'www.name3.com', 'photo' => '3.jpg'],    ['name' => 'project 4', 'url' => 'www.name4.com', 'photo' => '4.jpg'],    ['name' => 'project 5', 'url' => 'www.name5.com', 'photo' => '5.jpg'],    ['name' => 'project 6', 'url' => 'www.name6.com', 'photo' => '6.jpg'],)我需要通过数组中的下一个和上一个元素(如果存在)获取函数:$next = next($actualUrl);$previous = previous($actualUrl);我该怎么做?
查看完整描述

3 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

这个简单的代码将帮助您:


<?php


function next_elm ($array, $actualUrl) {

    $i = 0;

    while ( $i < count($array) && $array[$i]["url"] != $actualUrl ) $i++;  

    

   if ($i < (count($array) - 1)) {

       return $array[$i+1];

   } else if ($i == (count($array) - 1)) {

       return $array[0];  // this is depend what you want to return if the url is the last element

   } else {

       return false; // there is no url match

   }

    

}

function prev_elm ($array, $actualUrl) {

    $i = 0;

    while ( $i < count($array) && $array[$i]["url"] != $actualUrl ) $i++;  

    

   if ($i < (count($array)) && $i>0) {

       return $array[$i-1];

   } else if ($i == 0) {

       return $array[count($array) - 1];  // this is depend what you want to return if the url is the first element

   } else {

       return false; // there is no url match

   }

    

}


查看完整回答
反对 回复 2023-10-22
?
ibeautiful

TA贡献1993条经验 获得超5个赞

我更喜欢通过 foreach 循环遍历任何数组。如果您想从中获取任何特定内容,只需将其复制到 TMP 变量中即可。例如:


$tmp_var = null;

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

   $tmp_var = $value['name'];

}


查看完整回答
反对 回复 2023-10-22
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

首先查找实际 URL,然后使用此索引查找上一项和下一项。此外,您还应该添加检查当前项目是第一个还是最后一个元素,以避免空指针异常。


$curr = 0;

foreach($array as $value){

    if($value['url'] == 'www.name2.com'){

        break;

    }

    $curr += 1;

}


$previous = $array[$curr-1];

$next = $array[$curr+1];


查看完整回答
反对 回复 2023-10-22
  • 3 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信