如何组合两个函数并返回一个数组?

时间:2013-02-22 11:53:12

标签: php mysql arrays function return

你好我想缩短我的代码,并希望结合两个完全相同的功能。

所以我得到了这个:

function a($a){
    global $db;
    $query = $db->query("SELECT col_a FROM table WHERE Field= '$a' ");
    $check = $query->fetch_assoc();
    $return_a = $check['col_a'];
    return ($return_a);
}
function b($a){
    global $db;
    $query = $db->query("SELECT col_b FROM table WHERE Field= '$a' ");
    $check = $query->fetch_assoc();
    $return_b = $check['col_b'];
    return ($return_b);
}

所以我认为我可以将两者结合成一个:

function ab($a){
global $db;
$query = $db->query("SELECT col_a, col_b FROM table WHERE Field= '$a' ");
$check = $query->fetch_assoc();
$return_array = array( $check['col_a'], $check['col_b'] );
return ($return_array);
}

这似乎不起作用。我尝试使用以下方法读出数组:

$db_data = ab($a);

echo $db_data['col_a'];
echo $db_data['col_b'];

所以,如果有人能说出我做错了什么,我真的很感激。

非常感谢。

4 个答案:

答案 0 :(得分:1)

您没有创建命名数组,因此您的结果会被$db_data[0]$db_data[1]

编入索引

替换: $return_array = array( $check['col_a'], $check['col_b'] );

使用: $return_array = array( 'col_a' => $check['col_a'], 'col_b' => $check['col_b'] );

甚至更简单 只需返回$check;

答案 1 :(得分:1)

试试这个:

$db_data = ab($a);

echo $db_data[0];
echo $db_data[1];

答案 2 :(得分:1)

如果您这样做(与您的代码相同),您可以像

一样访问它
function ab($a){
    global $db;
    $query = $db->query("SELECT col_a, col_b FROM table WHERE Field= '$a' ");
    $check = $query->fetch_assoc();
    $return_array = array( $check['col_a'], $check['col_b'] );
    return ($return_array);
}



$db_data = ab($a);

echo $db_data[0]; // will return 'col_a';
echo $db_data[1]; // will return 'col_b';

你应该这样做

function ab($a){
    global $db;
    $query = $db->query("SELECT col_a, col_b FROM table WHERE Field= '$a' ");
    $check = $query->fetch_assoc();
    //$return_array = array( $check['col_a'], $check['col_b'] );
    return ($check);
}

以及何时需要提取

$db_data = ab($a);

echo $db_data['col_1'];
echo $db_data['col_1'];

答案 3 :(得分:0)

list($col_a, $col_b) = ab($a);
echo $col_a;
echo $col_b;