用数组填充php中的min函数?

时间:2012-01-23 17:24:34

标签: php arrays

我一直试图让这个工作起来而不能。

我有一个类似pop.2,rundo.5,moti.3的字符串,我正在尝试将poprundomoti放入已填充min的{​​{1}}中{1}}功能。

最终结果看起来像是镜像,

associative array

到目前为止我已经

$min = min($user['pop'], $user['rundo'], $user['moti']);

这是我得到的,现在卡住了。我尝试了几种方法,但无济于事。

我知道我可以得到像这样的值,

$items = 'pop.2,rundo.5,moti.3';
// EXPLODE MINUS ITEMS
$minus = explode(',', $items);
// GET MINUS ITEMS AMOUNT
foreach($minus as $item) {
     $itemMinus[] = explode('.', $item);
}

但我需要动态生成它,因为我可以放入具有更多值的字符串,例如$itemMinus[0][0] // pop $itemMinus[1][0] // rundo $itemMinus[2][0] // moti

任何想法和感谢。

2 个答案:

答案 0 :(得分:1)

你快到了。使用list()获取密钥和值:

$itemsMinus = array();
$items = 'pop.2,rundo.5,moti.3';
// EXPLODE MINUS ITEMS
$minus = explode(',', $items);
// GET MINUS ITEMS AMOUNT
foreach($minus as $item) {
    // Add to the array by key
    list($key, $value) = explode(".", $item); 
    $itemsMinus[$key] = $value;
}

print_r($itemsMinus);
Array
(
    [pop] => 2
    [rundo] => 5
    [moti] => 3
)

答案 1 :(得分:0)

作为迈克尔帖子的替代方案,您可以使用sscanf方法代替listexplode

$items = 'pop.2,rundo.5,moti.3';
// EXPLODE MINUS ITEMS
$minus = explode(',', $items);
// GET MINUS ITEMS AMOUNT
foreach($minus as $item) {
    sscanf( $item,'%s.%d', $key, $value); 
    $itemsMinus[$key] = $value;
}
相关问题