我想在我的数据库中插入一个庞大的联系人列表(用于某些性能测试)。
我在随机化一些数据方面遇到了一些麻烦。
$input = array("city1", "city2", "city3");
$city= shuffle($input);
如果我理解清楚shuffle
函数,我需要传递一个数组,然后才能填充它,对吧?那么这里有什么问题?
PS。我知道,只是基本的PHP内容,但我无法在stackoverflow上找到任何类似的数组示例,所以请不要因为打开这个主题而生气。
答案 0 :(得分:4)
您的代码:$city=shuffle($input);
不会将混洗数组传递给$city
变量 - 而是函数返回TRUE或FALSE,具体取决于它是否成功完成。该函数实际上是对您的ORIGINAL数组进行洗牌。
您正在为$ city数组分配布尔值(true或false) - 这是函数的输出 - 即它是否有效。
<?php
$input = array("city1", "city2", "city3");
print_r($input);
shuffle($input);
print_r($input);
?>
Shuffle函数将原始数组混洗。
输出:
Array
(
[0] => city1
[1] => city2
[2] => city3
)
Array
(
[0] => city1
[1] => city3
[2] => city2
)
编辑:回答评论:
您可以使用标准PHP格式的方括号和键来访问数组的各个元素吗?
<?php
$input = array("city1", "city2", "city3");
// Access one element of the array:
echo $input[0];
// shuffle the array about.
shuffle($input);
// Access the same element of the array
// and see if the data is the same
echo $input[1];
?>
这是一个包含数组中任何位的字符串,然后是相同的元素 - 可能有也可能没有相同的输出。