0

私はphpがかなり苦手です。このように配列を出力する Multicheckbox があります。

Array
  (
   [value1] => true
   [value2] => false
   [value2] => false
   [value4] => false
   [value5] => true
   [value6] => false
  )

true の要素 (値) のみを含む配列を返したいと思います。次に、これを適用します。

    $list_of_true_values = explode(',', $array_i_am_looking_for);
    return $list_of_true_values;

最後に、これを返したいと思います: value1,value5.

ありがとう'

4

3 に答える 3

2

array_keys($array, true);必要な真の値を持つキーを持つ配列を返します..

于 2012-08-18T15:14:26.787 に答える
2

Rajatが言ったように、array_keys()関数を使用できます。また、 の出力を取得しようとしている場合はvalue1,value5、 を使用しないでexplode()くださいimplode()

return implode(",", array_keys($array, true));

は、あなたが必要とすることすべてです。


あなたのコメントによると、キーを一重引用符で囲みたい場合:

$keys = array_keys($array, true);
array_walk($keys, function(&$v, $k){$v = "'" . $v . "'";});
return (implode(",", $keys));

これはAnonymous (Lambda) Syntaxと呼ばれます。

于 2012-08-18T15:43:16.743 に答える
1

具体的にtrue/false値がある場合はarray_filter()、コールバックなしでPHP を使用できます。

$values = array_filter($_POST['data']);

コールバック関数がないと、array_filter()すべての「false」および空の値が除外されます。次に、取得したリストからキーを取得するには、array_keys()「真」の値を持つものだけが$values配列に含まれるため、PHP を使用できます。

return array_keys($values);

Rajat が回答で示したように、正確な仕様では、オプションの$search_valueパラメーターを使用するだけで十分な場合があります。array_keys()ただし、array_filter()保持または破棄する値のリストを拡張する必要がある場合は、使用することをお勧めします。

于 2012-08-18T15:13:04.800 に答える