从查询中解析,格式化和存储为变量结果

时间:2015-07-31 19:17:33

标签: php mysql

在PHP中,我得到了回复:

array(1096) {
  [0]=>
  array(2) {
    ["exuid"]=>
    string(36) "c056b5ce-3b0c-4494-858a-cf184b904dc3"
    [0]=>
    string(36) "c056b5ce-3b0c-4494-858a-cf184b904dc3"
  }
  [1]=>
  array(2) {
    ["exuid"]=>
    string(36) "8a6262c6-a4e0-41a4-8a47-ecaf5f79c2d5"
    [0]=>
    string(36) "8a6262c6-a4e0-41a4-8a47-ecaf5f79c2d5"
  }
  [2]=>
  array(2) {
    ["exuid"]=>
    string(36) "728cb9b6-6240-470f-87d5-706af554cd0b"
    [0]=>
    string(36) "728cb9b6-6240-470f-87d5-706af554cd0b"
  }
  [3]=>
  array(2) {
    ["exuid"]=>
    string(36) "a26d0fdd-9a9b-4611-8c41-3d2c9b012988"
    [0]=>
    string(36) "a26d0fdd-9a9b-4611-8c41-3d2c9b012988"
  }  
    ETC

我最终需要的是定义一个变量,其中包含以逗号分隔的所有返回的exuid。像这样:

$something = 'c056b5ce-3b0c-4494-858a-cf184b904dc3', '8a6262c6-a4e0-41a4-8a47-ecaf5f79c2d5', '728cb9b6-6240-470f-87d5-706af554cd0b', 'a26d0fdd-9a9b-4611-8c41-3d2c9b012988'

我需要以这种格式推送到另一个查询:

 where `exuid` in ($something)

但我无法正确解析这个问题。如果我var dump($result)我得到上面显示的数组。如果我var dump($result[0]['exuid'])我得到第一个值(c056b5ce-3b0c-4494-858a-cf184b904dc3),而不是其他值。我如何解析它并以我需要的方式格式化它?

2 个答案:

答案 0 :(得分:1)

Just extract the column and then join:

$something = "'" . implode("','", array_column($result, 'exuid')) . "'";

If you don't have PHP >= 5.5.0 then use this in place of array_column() :

array_map(function($v) { return $v['exuid']; }, $result)

答案 1 :(得分:0)

Here is the PHP code:

<?php
$exuid = array();
foreach($result as $k=>$v)
{
    $exuid[] = $v['exuid'];
}
$exuid_str = "'" . implode($exuid, "','") . "'";

?>