【发布时间】:2012-03-18 11:09:32
【问题描述】:
我正在尝试使用以下“foreach”循环从一个现有数组 ($array) 中创建 2 个新数组。但是我不确定它是否正确:
$emails = array();
$numbers = array();
while($array){
$entry = $array['entry1'];
$number = number($entry);
if(isset($number) && (strlen($number) > 9)){
$numbers[] = array('entry1' => $entry, 'number' => $number);
}
else{
$email = email($entry);
$emails[] = array('entry1' => $entry, 'email' => $email);
}
}
内部数组应该有[]吗?
我什至需要在 while 循环之外启动数组吗?还是跳过它?
使用 foreach 循环会更好吗?
更新:
好的,这是原始数组:它是从 mysql 查询中提取的,由两个数字组成:
{('uid1','uid2'),('uid1','uid5'),('uid9','uid93'),....)
每行中可能还有其他数据,但只有这两个数据点真正重要。
我正在尝试为特定用户 ($entry) 创建两个单独的数组:所有具有数字的用户(这是我们拥有的函数),以及所有其余的 - 他们的电子邮件。
所以结果将是 2 个新数组,如下所示:
对于特定的uid79887:
numbers array: {('uid8','xxx-xxxx-xxx'),('uid34','yyy-yyyy-yyy'),('uid654','vvv-vvvv-vvv')}
emails array: {('uid4','mmm@mmm.com'),('uid1','lll@lll.com'),('uid55554','ppp@ppp.com')}
【问题讨论】:
-
你想在制作数组时发生什么?
-
您能否发布原始数组的
var_dump,以及您希望新数组的外观如何? -
您绝对不应该使用数组结构,它要求您使用“entry1”、“entry2”等键。数组可以是列表(以数字作为键,例如 0、1 , 2, 3...) 或关联,其中键是元素的名称(例如 'name'、'url'、'email' 或其他)。
-
这将是一个无限循环。
标签: php loops foreach while-loop associative-array