Мінімальне значення в мультиімпонентному масиві

У мене є цей масив

$data['key'] = array(11,5,7);
$data['value'] = array(78,54,96);

Я сортував його на основі вартості. Так що тепер я маю -

$ data ['key'] = (5,11,7); $ data ['value'] = (54,78,96);

Як я можу отримати перший набір пар основних значень, тобто той, який має мінімальне значення.

Я хочу, щоб О/П як -

(5,54) 

може хтось PLS пояснити, як це можна зробити?

3
Оскільки це недійсний PHP-код, важко здогадатися, що ці фактично виглядають. Будь ласка, поясніть.
додано Автор deceze, джерело
@Monansh Будь ласка, прокоментуйте кілька відповідей. тоді тільки ми можемо зрозуміти, що точно вам потрібно.
додано Автор Fasil kk, джерело

8 Відповіді

Ви можете використовувати asort і отримати лише першу клавішу та значення.

 asort($data);

foreach($data as $key=>$val) {
    echo $key." ".$val; break;
}
1
додано

Ви можете використовувати asort і отримати лише першу клавішу та значення.

 asort($data);

foreach($data as $key=>$val) {
    echo $key." ".$val; break;
}
1
додано

ти маєш на увазі щось подібне? Я дійсно не знаю, що ти намагається досягти

<?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 );
?>
1
додано
@Monansh, може, у вас є старий PHP, який не підтримує анонімні функції.
додано Автор jcubic, джерело
синтаксична помилка? де я перевірив його перед публікацією та роботою
додано Автор bystwn22, джерело
так, може, так я оновив код, перевірте зараз
додано Автор bystwn22, джерело
повертає синтаксичну помилку
додано Автор Vaishali, джерело
у мене є сонечко .. дуже багато ...
додано Автор Vaishali, джерело

Простий:

foreach($data['key'] as $val)
{
   if(isset($min_val)
   {
      if($val<$min_val)
      {
         $min_val=$val;
      }
   }
   else
   {
         $min_val=$val;
   }


}

Ви також можете використовувати функцію 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)
1
додано

Наступний алгоритм вирішить те, що ви хочете досягти в 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)";

?>
1
додано

Наступний алгоритм вирішить те, що ви хочете досягти в 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)";

?>
1
додано
$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);
1
додано
велике тобі спасибі :)
додано Автор Vaishali, джерело
$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);
1
додано
велике тобі спасибі :)
додано Автор Vaishali, джерело
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php