我需要從一個函數返回多個值,因此我已經將它們添加到數組並返回數組。PHP函數返回數組
<?
function data(){
$a = "abc";
$b = "def";
$c = "ghi";
return array($a, $b, $c);
}
?>
如何我可以通過調用上述函數接收$a
,$b
,$c
值是多少?
我需要從一個函數返回多個值,因此我已經將它們添加到數組並返回數組。PHP函數返回數組
<?
function data(){
$a = "abc";
$b = "def";
$c = "ghi";
return array($a, $b, $c);
}
?>
如何我可以通過調用上述函數接收$a
,$b
,$c
值是多少?
$array = data();
print_r($array);
可以做到這一點:
list($a, $b, $c) = data();
print "$a $b $c"; // "abc def ghi"
Docs:http://www.php.net/manual/en/function.list。php – 2011-04-17 09:00:34
@GiacomoTecyaPigani list不是一個函數,它是一個語言結構,如[docs](http://php.net/manual/en/function.list.php)所述。 – Taylan 2014-11-11 08:31:42
數據函數返回一個陣列,這樣就可以訪問相同的方式函數的結果作爲您通常訪問數組的元素:
<?php
...
$result = data();
$a = $result[0];
$b = $result[1];
$c = $result[2];
或者你可以使用list()
功能,@fredrik建議,做同樣的事情在一條線上。
您可以數組鍵添加到您的返回值,然後使用這些鍵打印數組值,如下所示:
function data() {
$out['a'] = "abc";
$out['b'] = "def";
$out['c'] = "ghi";
return $out;
}
$data = data();
echo $data['a'];
echo $data['b'];
echo $data['c'];
這裏是一個類似功能的最佳途徑
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']?>
數組數據,我認爲這樣做是創建一個全球性的最佳途徑var數組。然後通過傳遞它作爲參考,在函數數據中做任何你想做的事情。不需要返回任何東西。
$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
這是我做的警予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;?>
我在做什麼抓住了表我有一個白癡部分選擇。應該只是PHP減去「Yii的」工作方式爲DB
function give_array(){
$a = "abc";
$b = "def";
$c = "ghi";
return compact('a','b','c');
}
$my_array = give_array();
不要忘了,你也可以使用'extract($ my_array)'將數組分離回變量:http://php.net/manual/en/function.extract.php – 2013-05-23 17:56:23
這很酷......但在我的經驗中不是很常用。 – 2014-05-02 04:24:11
根本的問題圍繞着訪問數組內的數據,菲利克斯克林第一響應指出。
在下面的代碼中,我用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();
從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"
?>
注意:您可能不想評估該功能3次! – 2017-01-10 18:23:51
<?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"];
?>
像你訪問任何陣列可以存取權限的值。我建議閱讀http://php.net/manual/en/language.types.array.php。 – 2011-04-17 09:01:34