php用$ key值填充新数组

时间:2017-07-04 09:03:22

标签: php arrays key

我有一个包含许多不同$key$value s的数组 我所做的是创建一个允许用户插入电子邮件的表单 然后foreach循环开始运行,并将每个找到的电子邮件地址的值保存到新的array

这是该阵列的结果:

<?php 
Array
(
    [0] => email@email.com
    [1] => 103646
    [2] => Company
    [3] => 1140
    [4] => email@email.com
    [5] => 103689
    [6] => Company
    [7] => 3400
)
?>

我希望每个$value拥有自己的$key

我真的不知道如何做到这一点。

这是我的数组制作脚本:

<?php
$saved = array();
$input = $_GET['emailaddress'];
foreach ($data as $files){
    $bedrijf = $files['Name'];
    $bill = $files['Bill'];
    $amount = $files['Amount'];
    $email = $files['email'];
    if ($email == $input){
        foreach($files as $values){
            $saved[] = $values;
        }

    }
}
echo'<pre>';
print_r($saved);
echo'</pre>';
?>

2 个答案:

答案 0 :(得分:1)

你可以通过一个foreach来做到这一点。无需增加代码的复杂性。

$i = 0;
foreach ($data as $files){
    $bedrijf = $files['Name'];
    $bill = $files['Bill'];
    $amount = $files['Amount'];
    $email = $files['email'];
    if ($email == $input){
            $saved[$i]['email'] = $email;
            $saved[$i]['Amount'] = $amount;
            $saved[$i]['bill '] = $bill;    
            $saved[$i]['Name'] = $bedrijf ;    
            $i++;
    }
}

答案 1 :(得分:1)

这将提供所需的多维关联数组,而无需手动递增索引或声明一次性使用变量的代码膨胀:

foreach($data as $files){
    if($files['email']==$input){
        $saved[]=['Email'=>$files['email'],'Amount'=>$files['Amount'],'Bill'=>$files['Bill'],'Name'=>$files['Name']];
    }
}