Php 获取数组中的元素?

Php 获取数组中的元素?,php,arrays,function,search,information-retrieval,Php,Arrays,Function,Search,Information Retrieval,我有一个数组: array(a,b,c,d,e,f,g,h,i,j); 我想递一封信,把信的两边都收起来。例如,“f”应该是“e”和“g” 有没有一个简单的方法可以做到这一点 另外,如果选择“a”,我希望响应为null和“b” 这是我的实际数组,数组搜索如何处理多维数组 array(19) { [0]=> array(3) { ["id"]=> string(2) "46" ["title"]=> string(7) "A" ["thumb"]=> string(68)

我有一个数组:

array(a,b,c,d,e,f,g,h,i,j);
我想递一封信,把信的两边都收起来。例如,“f”应该是“e”和“g”

有没有一个简单的方法可以做到这一点

另外,如果选择“a”,我希望响应为null和“b”

这是我的实际数组,数组搜索如何处理多维数组

array(19) { [0]=> array(3) { ["id"]=> string(2) "46" ["title"]=> string(7) "A" ["thumb"]=> string(68) "013de1e6ab2bfb5bf9fa7de648028a4aefea0ade816b935dd423ed1ce15818ba.jpg" } [1]=> array(3) { ["id"]=> string(2) "47" ["title"]=> string(7) "B" ["thumb"]=> string(68) "9df2be62d615f8a6ae9b7de36671c9907e4dadd3d9c3c5db1e21ac815cf098e6.jpg" } [2]=> array(3) { ["id"]=> string(2) "49" ["title"]=> string(6) "Look 7" ["thumb"]=> string(68) "0bfb2a6dd1142699ac113e4184364bdf5229517d98d0a428b62f6a72c8288dac.jpg" } etc etc...
你可以利用

在数组中搜索给定值,如果成功,则返回相应的键

<?php
$arr=array('a','b','c','d','e','f','g','h','i','j');
$key = array_search('a',$arr);
echo isset($arr[$key-1])?$arr[$key-1]:'NULL';
echo isset($arr[$key+1])?$arr[$key+1]:'NULL';
您可以利用

在数组中搜索给定值,如果成功,则返回相应的键

<?php
$arr=array('a','b','c','d','e','f','g','h','i','j');
$key = array_search('a',$arr);
echo isset($arr[$key-1])?$arr[$key-1]:'NULL';
echo isset($arr[$key+1])?$arr[$key+1]:'NULL';
这项工作-

function find_neighbour($arr, $value){
    $index = array_search($value, $arr);
    if($index === false){
        return false;
    }
    if($index == 0){
        return Array(null, $arr[1]);
    }
    if($index == count($arr)-1){
        return Array($arr[$index-1], null);
    }
    return Array($arr[$index-1], $arr[$index+1]);
}
$a = Array('a','b','c','d','e','f','g','h','i','j');
print_r(find_neighbour($a,"a"));    //[null, 'b']
print_r(find_neighbour($a,"j"));    //['i', null]
print_r(find_neighbour($a,"e"));    //['d', 'f']
这项工程—

function find_neighbour($arr, $value){
    $index = array_search($value, $arr);
    if($index === false){
        return false;
    }
    if($index == 0){
        return Array(null, $arr[1]);
    }
    if($index == count($arr)-1){
        return Array($arr[$index-1], null);
    }
    return Array($arr[$index-1], $arr[$index+1]);
}
$a = Array('a','b','c','d','e','f','g','h','i','j');
print_r(find_neighbour($a,"a"));    //[null, 'b']
print_r(find_neighbour($a,"j"));    //['i', null]
print_r(find_neighbour($a,"e"));    //['d', 'f']

如前所述,数组搜索是一种可能性,或者您可以运行for循环

var selection = 'a'; // your selection

var arr = [  'a', 'b', 'c', 'd', 'e', 'f']; // small array

var i = 0, // define loop i
    le = arr.length, // define loop length
    out, // output var
    match = ''; // matching data
    before = 'non', // before data 
    after = 'non'; // after data

for(i; i < le; i++){ // run the loop
  if(arr[i] === selection){ // if loop matches selection
    match = arr[i]; // set match var
    after = arr[i+1] || after; // set after var, if undifined, set "non" from above
    before = arr[i-1] || before; // set before var if undefined, set "non" from above
  }
}

out = 'match: ' + match + ' before: ' + before + ' after: ' + after; //build output

alert(out); 
var selection='a';//你的选择
var arr=['a','b','c','d','e','f'];//小阵列
变量i=0,//定义循环i
le=arr.length,//定义循环长度
out,//输出变量
匹配=“”;//匹配数据
before='non',//在数据之前
after='non';//事后数据
对于(i;i

如前所述,数组搜索是一种可能性,或者您可以运行for循环

var selection = 'a'; // your selection

var arr = [  'a', 'b', 'c', 'd', 'e', 'f']; // small array

var i = 0, // define loop i
    le = arr.length, // define loop length
    out, // output var
    match = ''; // matching data
    before = 'non', // before data 
    after = 'non'; // after data

for(i; i < le; i++){ // run the loop
  if(arr[i] === selection){ // if loop matches selection
    match = arr[i]; // set match var
    after = arr[i+1] || after; // set after var, if undifined, set "non" from above
    before = arr[i-1] || before; // set before var if undefined, set "non" from above
  }
}

out = 'match: ' + match + ' before: ' + before + ' after: ' + after; //build output

alert(out); 
var selection='a';//你的选择
var arr=['a','b','c','d','e','f'];//小阵列
变量i=0,//定义循环i
le=arr.length,//定义循环长度
out,//输出变量
匹配=“”;//匹配数据
before='non',//在数据之前
after='non';//事后数据
对于(i;i

搜索字母,获取其索引,如果其中一个<0或>count(array)返回null,则获取index-1和index+1的元素。感谢Merguez,只是想知道是否有用于此的php函数。您可以使用
数组搜索的组合(返回搜索字母的索引)和简单的数组操作。搜索字母,获取其索引,如果其中一个是<0或>count(array)返回null,则获取index-1和index+1的元素。感谢Merguez,只是想知道是否有用于此的php函数。您可以使用
数组搜索
的组合(返回搜索字母的索引)和简单的数组操作。但是边缘情况如何呢$字母a的键-1将是-1,这是一个无效键,与$key+1相同,用于处理边缘案例使用:
echo-isset($arr[$key-1])$arr[$key-1]:空谢谢,我的数组实际上是多维的,数组搜索如何处理?更新了原始问题边缘情况如何$字母a的键-1将是-1,这是一个无效键,与$key+1相同,用于处理边缘案例使用:
echo-isset($arr[$key-1])$arr[$key-1]:空谢谢,我的数组实际上是多维的,数组搜索如何处理?更新原始问题