我在dbase上运行查询,该查询返回fetch上的多字段记录集或数组。该阵列是多场的,因为我需要几个字段输出到屏幕。但是,我想保存一个只有一个变量的数组,每个记录的id。与另一个记录列表进行比较。实际上,我需要从数组中删除除一个字段之外的所有字段。
实际上,我想减少(不使用正确的数组表示法):
{1 red dog, 2 orange cat, 3 yellow canary}
到
{1,2,3}
有一种简单的方法吗?
提前致谢!
答案 0 :(得分:3)
基本上你想要的是阵列采摘;这里有一个RFC将其引入语言,但尚未被接受。
与此同时,你必须采用传统方式:
$a = array(
array('id' => 1, 'title' => 'title1'),
array('id' => 2, 'title' => 'title2'),
);
array_map(function($v) {
return $v['id'];
}, $a);
// returns array(1, 2)
在5.3之前你必须这样写:
function getid($v)
{
return $v['id'];
}
array_map('getid', $a);
答案 1 :(得分:1)
我不确定我是否按照你对阵列设置的解释,但是你正在寻找的函数可能是“array_keys”PHP函数,它只返回数组键。
如果这不是您正在寻找的答案,也许您可以通过使用正确的数组表示法来澄清您的问题,或者可能是数据库中指定您要隔离的值的实际示例。
答案 2 :(得分:1)
您的数组格式不明确
选项A
$array = array("1 red dog", "2 orange cat", "3 yellow canary");
$array = array_map(function($var){ $var = explode(" ", $var,2) ; return array_shift($var); }, $array);
var_dump($array);
选项B
$array = array("1" =>"red dog", "2" =>"orange cat", "3" =>"yellow canary");
$array = array_keys($array);
var_dump($array);
输出
array
0 => string '1' (length=1)
1 => string '2' (length=1)
2 => string '3' (length=1)