-1

嘿伙计们,我有一个数组,例如

 $return = array(
    'GPPZ20'=>'5.00',
    'GPPZ45'=>'10.00',
    'GPPZ75'=>'15.00',
    'GPPZH20'=>'5.00',
);

我也有一个数组

 [0] => Array
    (

        [main_company] => Marketing
        [code] => GPPZH20XSYDLDJ
        [company] => All Companies
    )

[1] => Array
    (

        [main_company] => Some Company
        [code] => XHJDOJSHHJYD
        [company] => All Companies

    )

等等

我需要做的是从第二个数组中获取代码值,并检查前几个字符中的任何一个是否与返回数组中的任何字符匹配,如果是,则从返回数组中获取值。

我可以指定前 5 个字符或 6 个字符,因为返回数组中的键可以是任意数字,但它们始终是代码的开头。

非常感谢任何想法或帮助。

4

2 回答 2

1

所有你需要的是

foreach ( $data as $v ) {
    foreach ( $return as $k => $f ) {
        if (strpos($v['code'], $k) === 0) {
            printf("%s %s %f \n", $v['main_company'], $v['code'], $f);
        }
    }
}

输出

Marketing GPPZH20XSYDLDJ 5.000000
于 2012-12-31T20:09:26.073 回答
0

假设您已经从第二个数组中获得了一个代码值,请切断它的第一部分。

$code = $array[0]['code'];
$str = substr($code, 0, 5);

foreach($return as $key=>$element){
    if($key==$str){
         echo $element;
    }
}
于 2012-12-31T19:47:05.830 回答