Php 如何将多维数组转换为单个变量?

Php 如何将多维数组转换为单个变量?,php,Php,问题是我无法获取数组值并分配给某个变量。我想向多个号码发送消息,这些号码来自DB。这是我的数组,用来保存所有的mob号码。现在的问题是我想从这个数组中发送所有的数字 Array ( [0] => Array ( [mobile] => 9944176261 ) [1] => Array ( [mobile] => 9994444783 )

问题是我无法获取数组值并分配给某个变量。我想向多个号码发送消息,这些号码来自
DB
。这是我的数组,用来保存所有的mob号码。现在的问题是我想从这个数组中发送所有的数字

Array
(
    [0] => Array
        (
            [mobile] => 9944176261
        )

    [1] => Array
        (
            [mobile] => 9994444783
        )

    [2] => Array
        (
            [mobile] => 9944176261
        )

)
,Array
(
    [0] => Array
        (
            [mob_no] => 9944176262
        )

    [1] => Array
        (
            [mob_no] => 9944176263
        )

    [2] => Array
        (
            [mob_no] => 9944176265
        )

)
这是我使用SMS网关发送消息的代码。我想将所有号码分配给
receipientno
变量。基于此
receipientno
值发送消息

//msg code for customers
        $ch = curl_init();
        $user="username:pwd";
        $receipientno=$_POST['check_list'];
        $receipientno = implode(',', $receipientno);        
        $senderID="TEST SMS"; 
        $msgtxt=$_POST['message'];
        curl_setopt($ch,CURLOPT_URL,  "http://api.mVaayoo.com/mvaayooapi/MessageCompose");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, "user=$user&senderID=$senderID&receipientno=$receipientno&msgtxt=$msgtxt");
        $buffer = curl_exec($ch);
        if(empty ($buffer))
        { echo " buffer is empty "; }
        else
        { echo $buffer; } 
        curl_close($ch);

假设您的POST数组的结构如下:

$arr = array(
array(
    0 => array
        (
            'mobile' => 9944176261
        ),
    1 => array
        (
            'mobile' => 9994444783
        ),
    2 => array
        (
            'mobile' => 9944176261
        )

),
array
(
0 => array
    (
        'mob_no' => 9944176262
    ),
1 => array
    (
        'mob_no' => 9944176263
    ),

2 => array
    (
        'mob_no' => 9944176265
    )
)
)
;
您可以使用此代码段获得所有
mob\u no
mobile
索引的逗号分隔列表

$receipientsNo = "";
foreach($arr as $row){
$recipientsNo .= ",". implode(',', array_map(function ($input) {
  if(isset($input['mobile']))
    return $input['mobile'];
  elseif (isset($input['mob_no']))
     return $input['mob_no'];
}, $row));
}

$recipientsNo = ltrim($recipientsNo,",");
更新: 您需要为客户更新
//msg代码
代码如下:

$ch = curl_init();
$user="username:pwd";

$receipientsNo = "";
foreach($_POST['check_list'] as $row){
    $receipientsNo .= ",". implode(',', array_map(function ($input) {
      if(isset($input['mobile']))
        return $input['mobile'];
      elseif (isset($input['mob_no']))
         return $input['mob_no'];
    }, $row));
}

$receipientsNo = ltrim($receipientsNo,",");

$senderID="TEST SMS"; 
$msgtxt=$_POST['message'];
curl_setopt($ch,CURLOPT_URL,  "http://api.mVaayoo.com/mvaayooapi/MessageCompose");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "user=$user&senderID=$senderID&receipientno=$receipientsNo&msgtxt=$msgtxt");
$buffer = curl_exec($ch);
if(empty ($buffer))
{ echo " buffer is empty "; }
else
{ echo $buffer; } 
curl_close($ch);
试试这个

        <?php

    $receipientno='';

    $ss = array(
    array(
        0 => array
            (
                'mobile' => 9944176261
            ),
        1 => array
            (
                'mobile' => 9994444783
            ),
        2 => array
            (
                'mobile' => 9944176261
            )

    ),
    array
    (
    0 => array
        (
            'mob_no' => 9944176262
        ),
    1 => array
        (
            'mob_no' => 9944176263
        ),

    2 => array
        (
            'mob_no' => 9944176265
        )
    )
    )
    ;


    foreach($ss as $row ) {

        if(isset($row[0]['mobile']))
        {
             $receipientno.= implode(',',array_column($row,'mobile')); 


        }
        else if(isset($row[0]['mob_no']))
        {
             $receipientno.= implode(',',array_column($row,'mob_no')); 
        }

    }

    echo $receipientno;
输出:

        foreach($ss as $row ) {


        foreach($row as $new ){


        if(isset($new['mobile']))
        $receipientno.=$new['mobile'].",";

        else if(isset($new['mob_no']))
            $receipientno.=$new['mob_no'].",";


        }

    }

    echo rtrim($receipientno,",");
9944176261,9994444783,99441762619944176262,9944176263,9944176265

因此,您希望从数组中取出所有手机号码,并将其放入一个公共分隔字符串中?foreach($array as$row){$receipientno.=explode(',',array_column('mobile',$array));}您是对的@MarkTwigg@JYoThI不工作
为foreach()提供的参数无效
error请尝试我发布的答案@T.KarthikeyanT.karthikeyan但我为什么要更改数组的结构?我不建议您更改数组结构。我的示例使用的数组与您在问题中提供的数组相同。这就是问题所在
我想从数组中取出所有手机号码,并将它们放入一个公共分隔变量中
它显示了什么错误?因为我刚刚测试了它,它工作了。
注意:数组到字符串的转换
line
curl\u setopt($ch,CURLOPT\u POSTFIELDS,“user=$user&senderID=$senderID&receipentno=$receipentno&msgtxt=$msgtxt”)
我想你在某个地方犯了错误,我测试了代码,代码正常@T.KarthikeyanT.karthikeyanc你能复制我的源代码并在这里测试吗@T.KarthikeyanT.Karthikeyani刚刚复制并运行了
array\u column
函数,黑色哦,好的,你的php版本是什么?是的,需要5.5以上的东西,我不确定。好的,我会尝试另一个方法