0

$var私は変数を持っています、それを次のようなものをエコーアウトするものと呼びましょう:

32-Widgets: 18,28-Widgets: 24,57-Widgets: 45,44-Widgets: 24,55-Widgets: 45

変数は、フォーム送信とjQuery Sortablesの組み合わせから作成されます(これが、すべてが2つではなく1つの変数になる理由です)。順序は非常に重要です。

最終的には、次の2つの変数(配列の場合もあります)です。

$newVar1 = 32,18,24,45,24
$newVar2 = Widgets: 18,Widgets: 24,Widgets: 45,Widgets: 24,Widgets: 45

私は始めました:

$newVars = explode(",",$var);

しかし、私はそこからどこへ行くのか途方に暮れています。私は次のようなさまざまなステートメントを試しました。

foreach ($newVars as $newVar) :
    //Various explode() functions tried here.
endforeach;

誰かが私が欠けているものについて何か考えを持っているなら、私は確かに助けていただければ幸いです。

ありがとう、エリック

4

2 に答える 2

1

あまりきれいではありませんが、うまくいきます。

<?php

$str = "32-Widgets: 18,28-Widgets: 24,57-Widgets: 45,44-Widgets: 24,55-Widgets: 45";

$entries = explode(",", $str);
$parts1 = array();
$parts2 = array();

foreach ($entries as $e)
{
    $temp = explode("-", $e);
    $parts1[] = $temp[0];
    $parts2[] = $temp[1];
}

print_r($parts1);
print_r($parts2);

?>

実行例: http: //ideone.com/KkL06f

于 2012-12-14T21:00:19.557 に答える
0

次のようなことを試しましたか?

public function just_a_test() {
    $var = "32-Widgets: 18,28-Widgets: 24,57-Widgets: 45,44-Widgets: 24,55-Widgets: 45";
    $vars = explode(',', $var);
    $partsA = $partsB = array();
    foreach ($vars as $aVar) {
        preg_match('/^(\d+)-(Widgets: \d+)$/i', $aVar, $parts);
        $partsA []= $parts[0];
        $partsB []= $parts[1];
    }
    echo '<pre>';
    print_r($partsA);
    print_r($partsB);
    echo '</pre>';
}

各配列でimplode()を呼び出すことにより、簡単に自分のような出力を得ることができます。

于 2012-12-14T21:14:33.540 に答える