选择查询使一列成为mysql中的键

I need the array as (2) from a single query can anyone help ?

1.  Array
(
    [0] => Array
        (
            [crop_id] => 3
            [crop_name] => Barley
        )

2. Array
(
    [0] => Array
        (
            [Barley] => 3
        ) 

)

Don't know about query but you can do that simply using array_map()

$array[] = array('crop_id' => 3, 'crop_name' => "Barley");

$result = array_map("myfunction",$array);
print_r($result);

function myfunction($v)
{
    $data = [];
    $data[$v['crop_name']] = $v['crop_id'];
    return $data;
}

Let's suppose you have stored your data in array named as crop_data like

$crop_data[0][crop_id]=3; $crop_data[0][crop_name]='Barley';
....

$crop_data[n][crop_id]=187; $crop_data[n][crop_name]='Wheat'

Try this code:

$new_crop_result=array()
foreach($crop_data as $key=>$record)
{
  $new_crop_result[$key][$record[crop_name]]=$record[crop_id];
}