While循环在对数组使用新索引时引发未定义通知

时间:2018-07-18 14:24:36

标签: php arrays

我有三个不同的数组。如果找到匹配项,则从第一个数组获取值并在第二个数组中进行测量,将数据输入新数组,第一个数组为类型,第二个数组为结果,第三个数组为< strong>数据。当我使用 @Override public void configure(HttpSecurity http) throws Exception { http .headers().frameOptions().disable() .and() .authorizeRequests() .antMatchers("/app/profile-info").permitAll() .antMatchers("/app/**").authenticated() .antMatchers("/management/health").permitAll(); } 时会发生问题,它会引发通知错误

  

注意未定义索引:第28行的价格

如果我以$data[$types[$i]]['price'] += $result[$x]['price'];

的方式使用它
  

这会生成新的索引数组,但不会加上价格,也不会显示通知。

问题是,如果它不接受价格作为索引,那么为什么要接受$data[$types[$i]][] = $result[$x]['price'];名称作为其前一行的索引。而且我想加上所有价格并将其分配给键 price ,当然也希望摆脱关注。

$data_array[$types[$i]]['name']
我在上面的文字中提到的

索引数组

$types[] = "class";
$types[] = "late_fine";
$types[] = "exam_fees";

$result[] = array("name"=>"class 1", "type" => "class", "price" => 10 );
$result[] = array("name"=>"class 1", "type" => "class", "price" => 20 );
$result[] = array("name"=>"late fine", "type" => "late_fine", "price" => 50 );
$result[] = array("name"=>"late fine", "type" => "late_fine", "price" => 40 );

$i=0;
$x=0;
while($i < count($types)){
 while($x < count($result)){    
     if($types[$i] == $result[$x]['type']){          
        $data[$types[$i]]['name'] = $result[$x]['name'];
        $data[$types[$i]]['price'] += $result[$x]['price'];          
     }   
    $x++;
     }   
    $x = 0; 
    $i++;
 } 

 echo "<pre>";
 print_r($data);

我期望没有通知的结果

Array
  (
   [class] => Array
    (
        [name] => class 1
        [0] => 10
        [1] => 10
        [2] => 10
    )
   )

0 个答案:

没有答案