php / mysql数组删除字段

时间:2012-10-06 15:41:59

标签: php mysql arrays

我在dbase上运行查询,该查询返回fetch上的多字段记录集或数组。该阵列是多场的,因为我需要几个字段输出到屏幕。但是,我想保存一个只有一个变量的数组,每个记录的id。与另一个记录列表进行比较。实际上,我需要从数组中删除除一个字段之外的所有字段。

实际上,我想减少(不使用正确的数组表示法):

{1 red dog, 2 orange cat, 3 yellow canary}

{1,2,3}

有一种简单的方法吗?

提前致谢!

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)