2016-11-18 120 views
0

我想循环访问数组的键,并在该键与变量匹配时返回值。但我所做的似乎没有太大意义。PHP循环数组键和返回值

public function check($variable) 
{ 
    $result = 0; 

    $amount = array(
     3 => 10, 
     4 => 20, 
     5 => 50 
     ); 

    foreach ($amount as $a) { 
     if ($a == $variable) { 
      $result = $a[$amount]; 
     } 
    } 

    return $result; 
} 

在这一点上,我甚至不能确定了,如果我做的是对的:P

任何人谁可以帮我吗?

非常感谢提前!

+0

你的预期输出是什么。你可以请张贴 –

+0

嗯....我打赌它应该是:$ result = $ a ...但它不清楚你想要什么...... – barudo

+0

你使用的键和值是非常混乱:什么是输入和匹配输出?一些例子会有所帮助。 – jeroen

回答

2
public function check($variable) 
{ 
    $result = 0; 

    $amount = array(
     3 => 10, 
     4 => 20, 
     5 => 50 
    ); 

    if (isset($amount[$variable])) { 
     $result = $amount[$variable]; 
    } 

    return $result; 
} 
0
public function check($variable) 
{ 
    $result = 0; 

    $amount = array(
     3 => 10, 
     4 => 20, 
     5 => 50 
     ); 

    foreach ($amount as $k=>$v) { 
     if ($k == $variable) { 
      $result = $v; 
     } 
    } 

    return $result; 
} 
0

你并不需要那么多的逻辑。我认为你不需要该功能太多,但在这里它是:

var_dump(check(4)); 

function check($variable) 
{ 
    $amount = array(
     3 => 10, 
     4 => 20, 
     5 => 50 
    ); 

    return isset($amount[$variable]) ? $amount[$variable] : 0; 
} 

正如我可以看到这个是一个类中的方法..它会更好看从该类

+0

如何在没有功能的情况下做到这一点? –

+0

你必须显示整个上下文..你想要使用它的类.. –

+0

这太有点显示我想做这个检查作为其他相当大功能的一部分 –

0
function check($variable) 
{ 
    $result = 0; 
    $amount = array(
     3 => 10, 
     4 => 20, 
     5 => 50 
     ); 


    foreach ($amount as $a) { 
     if ($a == $variable) { 
      $result = $a; 
     } 
    } 

    return $result; 
} 

基本上行指定$ a到$结果是不是为了所有的方法。这就是所有需要解决的问题。现在,如果它在列表中,则返回0或$ variable。坦率地说,你非常接近正确的代码...