比较数组键并在php中获取值

时间:2013-07-11 08:15:59

标签: php arrays loops

我有一个显示结果的数组:

Array ( [standards_id] => 1 
    [value] => sory 
    [order] => 10
) 
Array ( [standards_id] => 1 
    [value] => javid 
    [order] => 3
) 
Array ( [standards_id] => 1 
    [value] => saleem 
    [order] => 4
).

我想检查数组键,如果它是“值”,那么我想连接它的值。我尝试这样的代码但不是成功的。

$row = array(.....);
 $vali = '';
foreach ($row as $key => $value) {

        if( $value[$key] == 'value'){

                echo  $vali .= $value['value'].",";
        }
    }  

我想在一个循环中完成。$ row包含多个数组,如上面的3. $ row包含从数据库中获取的所有记录。您了解$ row是什么。

4 个答案:

答案 0 :(得分:1)

使用isset()查看'value'的每个元素中是否存在键$row;你根本不需要一个循环:

foreach ($row as $data) {
    if (isset($data['value'])) {
       $vali .= $data['value'] . ',';
    }
}

或者,您可以使用值

构建一个数组
$values = array();
foreach ($row as $data) {
    if (isset($data['value'])) {
        $values[] = $data['value'];
    }
}
echo join(',', $values);

答案 1 :(得分:1)

您的命名表明$row仅包含:

Array ( [standards_id] => 1 
    [value] => sory 
    [order] => 10
) 

没有理由循环这样的结构。您可以测试此“行”是否包含带

的值
if( isset( $row['value'] ) ) { 
  $vali .= $row['value'] . ', ';
}

如果你有一个包含这些数组的变量$myRows,你可以使用

循环它们
foreach( $myRows as $k => $row ) { ... }

在这种情况下,$row包含数组,您可以使用第一个代码将值附加到$vali

答案 2 :(得分:0)

你需要这个:

    foreach ($row as $key => $value) {

            if( $key == 'value'){

                     $vali .= $value.",";
            }
        }

echo $vali;

答案 3 :(得分:-1)

$row = array('standards_id' => 1, 'value' => 'saleem', 'order' => 4);
$vali = '';
foreach ($row as $key => $value) {
    if( $key == 'value'){
        $vali .= $value . ",";
    }
}
echo $vali;