私はこの配列を持っています
$data['key'] = array(11,5,7);
$data['value'] = array(78,54,96);
値に基づいて並べ替えました。だから今、私は-
$data['key'] = (5,11,7); $data['値'] = (54,78,96);
キーと値のペアの最初のセット、つまり最小値を持つものを取得するにはどうすればよいですか。
私はo / pが欲しい -
(5,54)
誰かがこれを行う方法を説明できますか?
私はこの配列を持っています
$data['key'] = array(11,5,7);
$data['value'] = array(78,54,96);
値に基づいて並べ替えました。だから今、私は-
$data['key'] = (5,11,7); $data['値'] = (54,78,96);
キーと値のペアの最初のセット、つまり最小値を持つものを取得するにはどうすればよいですか。
私はo / pが欲しい -
(5,54)
誰かがこれを行う方法を説明できますか?
単純:
foreach($data['key'] as $val)
{
if(isset($min_val)
{
if($val<$min_val)
{
$min_val=$val;
}
}
else
{
$min_val=$val;
}
}
YOU機能も使えmin()ます。例:
$output = array();
$output []= min(array(11,5,7)); //will output 5
$output[]= min(array(78,54,96)); //will output 54
print_r($output); //out put will be (5,54)
asort最初のキーと値のみを使用および取得できます。
asort($data);
foreach($data as $key=>$val) {
echo $key." ".$val; break;
}
次のアルゴリズムは、達成したいことを O(n) 時間で解決します。
<?php
$data['key'] = array( 11, 5, 7 );
$data['value'] = array( 78, 54, 96 );
$min_value=$data["value"][0]; //temporarily set first element as current minimum
$min_index=$data["key"][0];
foreach($data["value"] as $key => $val){
if($val <= $min_value){
//we have a new minimum value
$min_value = $val;
$min_index = $data['key'][$key];
}
}
echo "($min_index => $min_value)";
?>
このようなことを意味しますか?あなたが何を達成しようとしているのか本当にわかりません
<?php
// minimum value from both key and value
$temp = array_map( "min", $data );
print_r( $temp );
// or if you only want to find the key of minimum value
$value = min( $data['value'] );
$key = $data['key'][array_search( $value, $data['value'] )];
$temp = array( $key, $value );
print_r( $temp );
// or if you want the first key value pairs
reset( $data );
$temp = array( current( $data['key'] ), current( $data['value'] ) );
print_r( $temp );
?>
$data['key'] = array(11,5,7);
$data['value'] = array(78,54,96);
$min = min($data['value']);
$key = array_search($min,$data['value']);
$result = array($data['key'][$key],$min);