Подтвердить что ты не робот

Возвращаемый массив функций PHP

Мне нужно вернуть несколько значений из функции, поэтому я добавил их в массив и вернул массив.

<?

function data(){

$a = "abc";
$b = "def";
$c = "ghi";

return array($a, $b, $c);
}


?>

Как я могу получить значения $a, $b, $c, вызывая указанную выше функцию?

4b9b3361

Ответ 1

Вы можете добавить ключи массива к своим возвращаемым значениям, а затем использовать эти клавиши для печати значений массива, как показано ниже:

function data() {
    $out['a'] = "abc";
    $out['b'] = "def";
    $out['c'] = "ghi";
    return $out;
}

$data = data();
echo $data['a'];
echo $data['b'];
echo $data['c'];

Ответ 2

вы можете сделать это:

list($a, $b, $c) = data();

print "$a $b $c"; // "abc def ghi"

Ответ 4

Функция данных возвращает массив, поэтому вы можете получить доступ к результату функции так же, как если бы вы обычно обращались к элементам массива:

<?php
...
$result = data();

$a = $result[0];
$b = $result[1];
$c = $result[2];

Или вы можете использовать функцию list(), как рекомендует @fredrik, сделать то же самое в строке.

Ответ 5

$array  = data();

print_r($array);

Ответ 6

Из 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"
?>

Ответ 7

<?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"];
?>

Ответ 8

вот лучший способ в подобной функции

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

Ответ 9

Это то, что я сделал внутри 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;?>

То, что я делаю, захватывает часть cretin таблицы, которую я выбрал. должен работать только для php минус путь "Yii" для db

Ответ 10

Основная проблема связана с доступом к данным в массиве, как указывает Felix Kling в первом ответе.

В следующем коде я получил доступ к значениям массива с конструкциями печати и эха.

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

Ответ 11

Чтобы получить значения каждой переменной, вам нужно обращаться с функцией как с массивом:

function data() {
    $a = "abc";
    $b = "def";
    $c = "ghi";
    return array($a, $b, $c);
}

// Assign a variable to the array; 
// I selected $dataArray (could be any name).

$dataArray = data();
list($a, $b, $c) = $dataArray;
echo $a . " ". $b . " " . $c;

//if you just need 1 variable out of 3;
list(, $b, ) = $dataArray;
echo $b;

Ответ 12

Я думаю, что лучший способ сделать это - создать глобальный массив 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

Ответ 13

Может быть, это то, что вы искали:

function data() {
    // your code
    return $array; 
}
$var = data(); 
foreach($var as $value) {
    echo $value; 
}