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(); 

http://php.net/manual/en/function.compact.php

数据函数返回一个数组,所以你可以像访问数组元素一样访问函数的结果:

 <?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