PHP在键中查找值并获取多维数组中另一个键的值

时间:2015-12-11 10:47:52

标签: php arrays multidimensional-array

可能是一个新手问题,但我一直试图解决这个问题并且它正在努力。

我有以下数组:

[0] => Array
    (
        [provisionalBookingRoomID] => 1
        [totalSpecificRoomCount] => 2
    )

[1] => Array
    (
        [provisionalBookingRoomID] => 2
        [totalSpecificRoomCount] => 5
    )

我需要一个php函数,在数组中搜索' provisionalBookingRoomID'的值。并返回' totalSpecificRoomCount'

的值

基本上类似于以下

getProvisionalTotalRoomsCount($currentRoom, $arrayOfRooms);
// getProvisionalTotalRoomsCount('1', $arrayOfRooms) should return 2;

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

检查一下:

getProvisionalTotalRoomsCount($currentRoom, $arrayOfRooms){
  foreach($arrayOfRooms as $key=>$value){
     if($value['provisionalBookingRoomID'] == $currentRoom){
            return $value['totalSpecificRoomCount'];
     }
  }
}

答案 1 :(得分:0)

如果您可能使用多个值,则可以为这些属性构建一个包含1> 1映射的新数组。

<?php

$items = array(
    array(
        'name' => 'Foo',
        'age'  => 23
        ),
    array(
        'name' => 'Bar',
        'age' => 47
        )
);

// Php 7
$name_ages = array_column($items, 'name', 'age');
echo $name_ages['Foo']; // Output 23

// Earlier versions:
$name_ages = array();
foreach($items as $value)
{
    $name_ages[$value['name']] = $value['age'];
}
echo $name_ages['Foo']; // Output 23

答案 2 :(得分:0)

对于寻找通用功能的人:

function findValueInArray($array, $searchValue, $searchKey, $requiredKeyValue) {
    foreach($array as $key=>$value){
        if($value[$searchKey] == $searchValue){
            return $value[$requiredKeyValue];
        }
    }
}

// Usage : findValueInArray($provisionalBookedRoomsArray, '1', 'provisionalBookingRoomID', 'totalSpecificRoomCount');

答案 3 :(得分:0)

$value = 0;
$array = array(array("provisionalBookingRoomID"=>1,"totalSpecificRoomCount"=>2),array("provisionalBookingRoomID"=>2,"totalSpecificRoomCount"=>5));

    array_map(
        function($arr) use (&$value) {

            if($arr['provisionalBookingRoomID']==1) {
                $value = $arr['totalSpecificRoomCount'];
            }           
        },$array
    );

    echo $value;