2016-10-25 12 views
-1

私のPHPコードは、私がこれを次のようになります配列を取得カンマ区切り文字列への配列ですか?

public function getAllAttributes() 
    { 
     $this->dao->select('b_title'); 
     $this->dao->from($this->getTable_buttonsAttr()); 
     $result = $this->dao->get(); 
     if(!$result) { 
      return array() ; 
     } 
     return $result->result(); 
    } 

$details = Modelbuttons::newInstance()->getAllAttributes(); 
$string = implode(', ', $details); 
var_dump ($string) ; ?> 

さ:

array (size=6) 
      0 => 
      array (size=1) 
       'b_title' => string 'test 10' (length=12) 
      1 => 
      array (size=1) 
       'b_title' => string 'test 11' (length=12) 
      2 => 
      array (size=1) 
       'b_title' => string 'test 12' (length=13) 
      3 => 
      array (size=1) 
       'b_title' => string 'test 13' (length=8) 
      4 => 
      array (size=1) 
       'b_title' => string 'test 14' (length=14) 
      5 => 
      array (size=1) 
       'b_title' => string 'test 15' (length=32) 

をどのように私はPHPでこのような文字列にこの配列を変換することができますか?

$out = '10, 11, 12, 13, 14,15'; 
+1

もこれを試すことができますが、あなたがこれを達成するために試みているものを私たちに表示します。 – Epodax

+1

何か試しましたか?任意のコードplz共有 – devpro

+0

私は文字列 '配列、配列、配列、配列、配列、配列'(長さ= 40)を取得 – Ahmed

答えて

0

このコードを試すことができます。

$array = [['b_title' => 'test 10'],['b_title' => 'test 11']]; 
foreach($array as $a) { 
    $values[] = explode(' ', $a['b_title'])[1]; 
} 
echo implode(', ', $values); 
+0

あなたのサポートのためのタンク – Ahmed

0

基本例:

<?php 
// your array 
$array = array(
     array('b_title'=>'test 10'), 
     array('b_title'=>'test 11'), 
     array('b_title'=>'test 12'), 
     array('b_title'=>'test 13') 
    ); 

$newArr = array(); 
foreach ($array as $key => $value) { 
    $newVal = explode(" ", $value['b_title']); 
    $newArr[] = $newVal[1]; 
} 
echo implode(',', $newArr); // 10,11,12,13 
?> 

説明:必要に応じて、文字列を分割するのに役立ち、あなたの文字列値のすべての使用explode()

まず:

$newVal = explode(" ", $value['b_title']); 

は、あなたのように配列のインデックス1を格納することができるより:最後に

$newArr[] = $newVal[1]; // array(10,11,12,13) 

、あなたはちょうどあなたがカンマで区切られたデータを取得するのに役立ちimplode()機能を使用する必要があります。

echo implode(',', $newArr); // 10,11,12,13 
0

これに代わる方法です。

$details = Modelbuttons::newInstance()->getAllAttributes(); /*[['b_title' => 'test 10'],['b_title' => 'test 11']];*/ 
$token = ""; 
foreach($details as $row1){ 
$token = $token.$row1['b_title'].", "; 
} 
echo rtrim(trim($token),","); 

出力:試験10試験11

説明foreachのスルー

は、すべての配列値についてカンマで区切られています。

今のところ、出力はtest 10, test 11,になります。そのため、末尾にある余分なカンマを削除してrtrim()に移動します。

+0

これは必要な出力 '$ out = '10,11,12,13,14,15 ';' – Blinkydamo

+0

を提供しません。それはMr @Blinkydamoに提供されます。私は回答を投稿する前にチェックしました。あなたが '$ out'と' single quotes'について話しているのであれば、そうかもしれません。 –

0
// Construct a new array of the stripped numbers 
$flattenedArray = array_map(function($item) { 
    list(, $number) = explode(' ', $item['b_title']); 

    return $number; 
}, $yourArray); 

// Concatenate the numbers into a string joined by , 
$out = implode(', ', $flattenedArray); 

これにより、結果が得られます。配列のチェックは、操作の前に正しい形式になっているかどうかという点で、いくつかの条件があります。

0

はこの猫を肌には多くの方法があります - ここに1つです:

<?php 
$out = ''; 

foreach ($array as $arrayItem) { 
    $out .= $arrayItem['b_title'] . ', '; 
} 

// Remove the extraneous ", " from the $out string. 
$out = substr($out, 0, -2); 
?> 

それとも、また「b_title」キーの値の「テスト」の部分を削除したいされた場合。あなたはそうのようにそれを達成することができます:

<?php 
$out = ''; 

foreach ($array as $arrayItem) { 
    $out .= str_replace('test ', '', $arrayItem['b_title']) . ', '; 

} 

// Remove the extraneous ", " from the $out string. 
$out = substr($out, 0, -2); 
?> 
0
$test_array = array(
    0 => array('b_title' => 'test 10'), 
    1 => array('b_title' => 'test 11'), 
    2 => array('b_title' => 'test 12'), 
    3 => array('b_title' => 'test 13'), 
    4 => array('b_title' => 'test 14'), 
    5 => array('b_title' => 'test 15'), 
); 
$result = ""; 
$result1 = array_walk($test_array, function ($value, $key) use(&$result) { 
    $result .= ",".array_pop(explode(" ", reset($value))).","; 
    $result = trim($result, ","); 
}); 

出力:$アウト= '10、11、12、13、14,15' ;おそらく、あなたの必要を用意する必要がある

forloopsを削減して、(爆発使用して配列を準備するPHPのネイティブあるarray_walk(使用して配列を超える説明

反復))、(array_pop)及び(トリム)文字列。

+0

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。あなたのコードに説明的なコメントを詰め込まないようにしてください。これは、コードと説明の両方の可読性を低下させます! – Rizier123

-1

あなたはこれを試してみてください言及したURL液Click here

foreach ($arr as $k=>$val) { 
    $v = explode (' ', $val['b_title']); 
    $out .= $v[1].','; 
} 
$out = rtrim ($out, ','); 
echo '<pre>'; print_r($out); die; 
+0

潜在的な解決策へのリンクはいつでも歓迎ですが、[リンクの周りにコンテキストを追加する](http://meta.stackoverflow.com/a/8259/169503)ので、あなたの同僚のユーザーは、それはそこにあります。ターゲットサイトに到達できない場合や、永続的にオフラインになる場合は、常に重要なリンクの最も関連性の高い部分を引用してください。外部サイトへのリンクよりも多すぎることを考慮すると、[なぜ、どのように答えが削除されるのですか?](http://stackoverflow.com/help/deleted-answers)の理由が考えられます。 – Rizier123

-1

に使用することができ、

foreach($test_array as $val) 
{ 
    $new_array[] = preg_replace('/\D/', '', $val['b_title']); 
} 

$out = implode(',', $new_array); 
echo $out; 

OUTPUT

10,11,12,13,14,15 

DEMO

+0

OPはなぜ "これを試してください"。良い答えは、何が行われたのか、そしてなぜそれが説明されます。これは、オペレータがスタックオーバーフローの将来の訪問者を理解するのに役立ちます。 – Rizier123

0

あなたは

$check = array(array ('b_title' => array('test 10')) 
    ,array('b_title' => array('test 11')) 
    ,array('b_title' => array('test 12')) 
    ,array('b_title' => array('test 13')) 
    ,array('b_title' => array('test 14')) 
    ,array('b_title' => array('test 15'))); 

$srt = ""; 
foreach($check as $kye => $val) 
{ 
    $title = $val['b_title'][0]; 
    $var = explode(' ',$title); 
    $srt .= trim($var[1]).', '; 
} 
$srt = substr(trim($srt),0,-1); 
関連する問題