我正在寻找一种类似array_column的方法,该方法从给定键相同的列输入数组中返回一个数组。 某事。 像这样:

$records = array(
    array(
        'id' => 123,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 4321,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 123,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    array(
        'id' => 1234,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);

getFromArray($records, 'first_name', 'id'); //getFromArray(Array $input, mixed $value, mixed $key)
/* should retrun
(
    [0] => John
    [1] => Jane
)
*/

感谢您提供的所有有用帮助^^

#1楼 票数:1 已采纳

以下内容可能会对您有所帮助:

首先-使用array_filter()查找id等于“ 123”的记录:

$needle = '123';
$result = array_filter($records, function ($v) use ($needle) {
        return $v['id'] == $needle; // when TRUE store value into result array
});

第二-在结果上使用array_colum()来获得hits的first_name

$column = 'first_name';
$result = array_column($result, $column);

输出:

array(2) {
  [0]=>
  string(4) "John"
  [1]=>
  string(4) "Jane"
}

#2楼 票数:0

尝试这个:

function getFromArray($arrays, $key, $value) {
   foreach($arrays as $array) {
      foreach($array as $k => $v) {
         if ($k == $key && $v == $value) {
            return $array;
         }
      }
   }
}

#3楼 票数:0

我假设您正在查询数据库以获取ID,名字和姓氏。 在这种情况下,如果您的数据库基于postgresql,请执行以下操作:


$records = pg_query($query); // this returns the 2d array you mentioned in the above question. Please use functions to manage for null.

while ($myrow = pg_fetch_array($records)) {
      if ($myrow['id'] == 123) $yourow[] = $myrow['first_name'];
} 

print_r($yourow);

  ask by Player Schark translate from so

未解决问题?本站智能推荐:

4回复

PhP数组如何获取键值

我有一个php数组,$ vararray,像这样 经过一堆操作后,我得到了var8的键/索引。 如何使用密钥获取var8的值? 我可以使用数组键功能获取键。 但是数组值有函数吗? 我检查了PHP手册,但似乎没有找到任何。
3回复

PHP如何获取数组的键值

我在尝试使用数组结构的数组时有以下设置。 我不确定在数组数组中找到键值后如何获取键值。
2回复

根据数组中的值在php中获取键值

我有多个像这样的数组: 现在,我想按值合并这些数组,并合并将键值加在一起。 伪代码: 预期产量: 我有一个这样的数据库; ..我想找到最共享的价值。 喜欢; 汽车(20 + 50 + 100) 家(50+ 60 + 10) 球(30
9回复

获取PHP数组中的最后一个键值对

我有一个结构如下的数组: 如何获取数组中的最后一个值,但保持索引[35]? 我正在寻找的结果是这样的:
3回复

如何从PHP数组中获取每个键值对

我需要从PHP中的数组中获取每个键值对。 结构是不同的并且不可规划,例如,密钥可能包含附加数组等(多维数组?)。 我想调用的函数的任务是从值中替换特定的字符串。 问题是foreach , each ,...只使用主键和值。 是否存在具有每个键/值的foreach函数的函数?
1回复

从PHP中的多维数组获取键值

我有以下类型的数组: 如果日期等于2017-01-02如何获取booking_nb的值? 我是否需要循环到数组中? 谢谢。
3回复

如何从数组中获取键值?

这是数组: 如何获得值“ 252”? 它是一个动态的价值。 我想获取存储在252处的任何值。 请帮忙? 提前致谢。
2回复

如何从数组中获取键值?

我有这样的数组。 现在,我需要基于键值和该键的值创建查询。 现在,我需要检查数组的键值,并根据键值生成一些查询。 例如,如果键值为emp_id或id,则需要生成一些查询; 否则,如果键值是数字,那么我需要创建其他查询。 这实际上是我要尝试执行的操作,但是我不知道我在fore