dongpao5261 2012-05-02 11:50
浏览 19
已采纳

从数组转换值? PHP

I want to converting values from array before inserting in MySQL. I used the following code, but it only works for some cases (2_AAA, 2_AAA_1) bun not works for cases (2_AA_B, 2_AA_B_1, AA_AB).

$vars = array('val' => '2_AAA',
              'val' => '2_AAA_1',
              'val' => '2_AA_B',
              'val' => '2_AA_B_1',
              'val' => 'AA_AB');

foreach ($vars as $v):
    $vArr = explode('_', $v['val']);

    if (is_numeric($vArr[0]) && count($vArr[0])) {
        $vid = $vArr[0];
        $name = trim($vArr[1]);
        $name_real = $var;
    } else {
        $vid = 0;
        $name = $v['val'];
        $name_real = $v['val'];
    }

    echo "VID -->" . $vid . "
";
    echo "NAME -->" . $vArr[0] . "
";
    echo "NAME_REAL -->" . $name_real . "
";

endforeach;

From this array I want to get following result

//VID -->2
//NAME -->AAA
//NAME_REAL -->2_AAA

//VID -->2
//NAME -->AAA
//NAME_REAL -->2_AAA_1

//VID -->2
//NAME -->AA_B
//NAME_REAL -->2_AA_B

//VID -->2
//NAME -->AA_B
//NAME_REAL -->2_AA_B_1

//VID -->0
//NAME -->AA_AB
//NAME_REAL -->AA_AB

If can not prefix before name the VID is 0.

How can I make this ?

Thanks in advance !

  • 写回答

3条回答 默认 最新

  • du127953 2012-05-02 12:08
    关注

    How about this? The following code gives the output you seem to be expecting.

    <?php
    
    $vars = array(
        array( 'val' => '2_AAA' ),
        array( 'val' => '2_AAA_1' ),
        array( 'val' => '2_AA_B' ),
        array( 'val' => '2_AA_B_1' ),
        array( 'val' => 'AA_AB' )
    );
    
    foreach ($vars as $v) {
        $vArr = explode('_', $v['val']);
    
        if( is_numeric( $vArr[0] ) ) {
            $vid = $vArr[0];
            $name = $vArr[1];
            $name_real = $v['val'];
        }
        else {
            $vid = 0;
            $name = $v['val'];
            $name_real = $v['val'];
        }
    
        echo "VID --> $vid
    ";
        echo "NAME --> $name
    ";
        echo "NAME_REAL --> $name_real
    ";
        echo "
    ";
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题