我很想知道如何在函数外部回显一个数组,例如,这段代码将其打印出来。但是,如果我只想返回值并将其回显到外面呢?
function myArray() {
$arr = array('One', 'Two', 'Three', 'four');
for ($i = 0; $i < count($arr); $i++) {
echo $arr[$i];
}
}
myArray();
希望这是有道理的。
答案 0 :(得分:3)
所以,并不是你想在循环之外回显(),而是你希望可以访问数组中的值。
使用array()函数(实际上是language construct)并仅提供值,PHP将为您“键入”数组。这些键从0开始,可以使用方括号访问,如下所示:
$myArray = array("first", "second", "third");
echo $myArray[0]; // will echo "first"
echo $myArray[1]; // will echo "second"
如果您希望在函数中构建数组,那么您需要了解范围。函数内设置的变量不能在函数外部访问。为了实现这一点,您需要返回数组并捕获该函数调用的返回值:
function myArray() {
return array("first", "second", "third");
}
// capture the return value of the myArray() function
$arrayToEcho = myArray();
echo $arrayToEcho[0]; // will echo "first"
答案 1 :(得分:1)
因为我喜欢array_walk
,这是另一种解决方案,
$arr = array('One', 'Two', 'Three', 'four');
array_walk($arr, 'echo_it');
function echo_it($item) {
echo "$item ";
}
但不像print
print_r(array('One', 'Two', 'Three', 'four'));
echo implode(", ", array('One', 'Two', 'Three', 'four'));
以上所有内容将echo
以一种或另一种形式呈现数组内容。这取决于您想要的输出类型,例如逗号分隔,或列表...
答案 2 :(得分:0)
只返回创建的数组
<?php
function myArray()
{
return array('One', 'Two', 'Three', 'four');
}
$arr = myArray();
echo $arr[1];
?>
答案 3 :(得分:0)
试试这个:
function myArray() {
$arr = array('One', 'Two', 'Three', 'four');
$output = "";
for($i=0; $i < count($arr); $i++) {
$output .= $arr[$i] . "<br />";
}
return $output;
}
$theValuesIWant = myArray();
echo $theValuesIWant ;
答案 4 :(得分:0)
我不确定你究竟是在问什么,我认为你的意思是因为$ arr在myArray中声明它是一个局部变量,但你想在myArray函数的一侧使用它,为此你会返回它是这样的:
function myArray() {
return array('One', 'Two', 'Three', 'four');
}
$array = myArray();
for ($i = 0; $i < count($array); $i++) {
echo $array[$i];
}
或
print_r(myArray());
答案 5 :(得分:0)
我不完全确定你要求的是什么。您可以使用print_r或var_dump打印数组,但这通常仅用于调试目的。您还可以创建一个这样的函数,允许您将数组作为参数传递给打印。
function printArray($printArr) {
$output = "";
for($i=0; $i < count($printArr); $i++) {
$output .= $printArr[$i];
}
echo $output;
}
$arr = array('One', 'Two', 'Three', 'four');
printArray($arr);
答案 6 :(得分:0)
function myArray() {
$arr = array('One', 'Two', 'Three', 'four');
// Here goes whatever you do with $arr
return $arr;
}
$arr = myArray();
echo $arr[0];
然而,在函数内部引入硬编码值并不总是一个好主意,这就是为什么你可以使用替代方法并在$arr
函数之外创建原始数组(myArray()
)然后通过它通过参考功能。
这样,在$arr
函数之外,您在函数中执行的所有操作都将显示myArray()
。
$arr = array('One', 'Two', 'Three', 'four');
function myArray(&$arr) { // Note the ampersand sign (&)!
// Whatever you do with the original array
$arr[] = 'Five';
}
myArray($arr);
echo $arr[4]; // Will echo "Five"...