質問

私は(完全な)php noobで、何かについて少し助けが必要です。

私は、ユーザーがフォームで最大6つのカテゴリを選択できるプロジェクトに取り組んでいます(ExpressionEngineを使用しています)。出力は次のようなものです。

"Cat1","Cat2","Cat3"

...等々。ユーザーは、そのフォームで最大6つのカテゴリを選択できます。

必要なもの:私の結果が3つのカテゴリであっても、6つの「セル」が必要です。

"Cat1","Cat2","Cat3","","",""

私はこれを試しました:

<?php
$str = '(output goes here)';
print_r(explode(',', $str, 6));
?>

...しかし、出力は私に与えます:

Array
(
[0] => Cat1
[1] => Cat2
[2] => Cat3
[3] =>
[4] =>
[5] =>

)

どうすればこれに到達できますか:

"Cat1","Cat2","Cat3","","",""

これは理にかなっていますか?

マーティンに感謝します

正しい解決策はありません

他のヒント

3つの空の文字列を含む6つのアイテムを含む配列がある場合:

$arr = array('cat1', 'cat2', 'cat3', '', '', '');

あなたはできる implode それらは文字列に、このように:

echo '"' . implode('","', $arr) . '"';

そして、次の出力が得られます。

"cat1","cat2","cat3","","",""


基本的、 implode セパレーターを使用して、配列のすべてのアイテムを文字列に入れることができます - ここでは、セパレーターは "," これがあなたの弦の間でできることです。

そして、分離器を要素の間に塗装するだけなので、添加物を置く必要があります " 結果の文字列の最初と最後に。


(私があなたの意味を理解したことを願っています...)



コメントの後に編集します:

わかりました、もしあなたの場合 $arr アレイには、最初に6つのアイテムが含まれていません。

$arr = array('cat1', 'cat2', 'cat3');

可能性は、空の要素を持つ配列を作成することです。このように、例:

$count = count($arr);

// Create an array with empty elements
$padding = array_fill($count, 6-$count, '');
var_dump($padding);

そして、それらをに追加します $arr 配列 :

// Add the empty elements to $arr
$arr = $arr + $padding;

(使用することもできます array_merge, 、 私は考えます)

そして、今、私たちに戻ります implode :

echo '"' . implode('","', $arr) . '"';

そして、今回は再び、あなたは得るでしょう:

"cat1","cat2","cat3","","",""


これが何ですか var_dump($padding); 情報を提供してください:

array
  3 => string '' (length=0)
  4 => string '' (length=0)
  5 => string '' (length=0)

そして、はい、あなたはを使用することができます + 配列付きのオペレーター (引用) :

+ オペレーターは、右利きのキーの要素を右利きの配列から左手に追加しますが、重複したキーは上書きされません。


もしあなたの $arr 6つの要素より長くなる可能性があります、あなたは使用できます array_slice 未成年の要素を削除するには:

$arr = array('cat1', 'cat2', 'cat3', '', '', '', '');
$arr = array_slice($arr, 0, 6);
echo '"' . implode('","', $arr) . '"';

あなたが試すことができます:

$org = '"Cat1","Cat2","Cat3"';
$arr = explode(',',$org);
$arr = array_merge($arr,array_fill(count($arr),6-count($arr),'""'));
$str = implode(',',$arr);
echo($str); // prints "Cat1","Cat2","Cat3","","",""

いつでも機能します $org もっている 6 以下の猫:

もしも $org = "Cat1","Cat2","Cat3","cat4","cat5"

$str そうなるでしょう "Cat1","Cat2","Cat3","cat4","cat5",""

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top