PHP函数返回数组
我需要从函数返回多个值,因此我已经将它们添加到一个数组并返回数组。
<? function data(){ $a = "abc"; $b = "def"; $c = "ghi"; return array($a, $b, $c); } ?>
如何通过调用上述函数来获得$a
, $b
, $c
的值?
您可以将数组键添加到您的返回值,然后使用这些键来打印数组值,如下所示:
function data() { $out['a'] = "abc"; $out['b'] = "def"; $out['c'] = "ghi"; return $out; } $data = data(); echo $data['a']; echo $data['b']; echo $data['c'];
你可以这样做:
list($a, $b, $c) = data(); print "$a $b $c"; // "abc def ghi"
function give_array(){ $a = "abc"; $b = "def"; $c = "ghi"; return compact('a','b','c'); } $my_array = give_array();
数据函数返回一个数组,所以你可以像访问数组元素一样访问函数的结果:
<?php ... $result = data(); $a = $result[0]; $b = $result[1]; $c = $result[2];
或者你可以像@fredrik所build议的那样,使用list()
函数在一行中做同样的事情。
$array = data(); print_r($array);
从PHP 5.4开始,您可以利用数组解引用并执行如下操作:
<? function data() { $retr_arr["a"] = "abc"; $retr_arr["b"] = "def"; $retr_arr["c"] = "ghi"; return $retr_arr; } $a = data()["a"]; //$a = "abc" $b = data()["b"]; //$b = "def" $c = data()["c"]; //$c = "ghi" ?>
这是类似function的最好方法
function cart_stats($cart_id){ $sql = "select sum(price) sum_bids, count(*) total_bids from carts_bids where cart_id = '$cart_id'"; $rs = mysql_query($sql); $row = mysql_fetch_object($rs); $total_bids = $row->total_bids; $sum_bids = $row->sum_bids; $avarage = $sum_bids/$total_bids; $array["total_bids"] = "$total_bids"; $array["avarage"] = " $avarage"; return $array; }
你得到像这样的数组数据
$data = cart_stats($_GET['id']); <?=$data['total_bids']?>
<?php function demo($val,$val1){ return $arr=array("value"=>$val,"value1"=>$val1); } $arr_rec=demo(25,30); echo $arr_rec["value"]; echo $arr_rec["value1"]; ?>
这是我在yii framewok里面做的:
public function servicesQuery($section){ $data = Yii::app()->db->createCommand() ->select('*') ->from('services') ->where("section='$section'") ->queryAll(); return $data; }
然后在我的视图文件里面:
<?php $consultation = $this->servicesQuery("consultation"); ?> ?> <?php foreach($consultation as $consul): ?> <span class="text-1"><?php echo $consul['content']; ?></span> <?php endforeach;?>
我正在抓住桌子的一个白色部分,我select了。 应该只为php减去数据库的“Yii”的方式工作
如Felix Kling在第一个响应中指出的那样,根本问题围绕访问数组内的数据展开。
在下面的代码中,我使用print和echo构造函数访问了数组的值。
function data() { $a = "abc"; $b = "def"; $c = "ghi"; $array = array($a, $b, $c); print_r($array);//outputs the key/value pair echo "<br>"; echo $array[0].$array[1].$array[2];//outputs a concatenation of the values } data();
我认为最好的办法是创build一个全局variables数组。 然后通过传递它作为参考,在函数数据中做任何你想做的事情。 不需要返回任何东西。
$array = array("white", "black", "yellow"); echo $array[0]; //this echo white data($array); function data(&$passArray){ //<<notice & $passArray[0] = "orange"; } echo $array[0]; //this now echo orange