2016-08-06 7 views
0

で彼らの本当のタイプへのすべての文字列は、私はこのような配列があります。変更配列

[▼ 
    0 => array:47 [▼ 
    "ProductID" => "37883" 
    "ProductCode" => "G-49211" 
    "ProductName" => "Preludes" 
    "StockStatus" => "2" 
    "LastModified" => "2014-02-27T09:50:00-08:00" 
    "LastModBy" => "1" 
    "ProductPopularity" => "110" 
    "AutoDropShip" => "N" 
    1 => [ 
    "ProductID" => "37884" 
    "ProductCode" => "G-49212" 
    "ProductName" => "Preludes " 
    "StockStatus" => "2" 
    "LastModified" => "2014-02-27T09:50:00-08:00" 
    "LastModBy" => "1" 
    "ProductPopularity" => "110" 
    "AutoDropShip" => "N" 
    ] 
] 

をしかし、この配列のすべての値は文字列です。この配列を繰り返し処理し、その値を元の型にキャストします。 ProductIDが整数の場合、整数に変換します。実際の日付blablaに日付を変換します。

これはできますか?

+0

これはなぜ必要なの?とにかく日付の種類も、元の種類もありません。 – Rizier123

+0

この値について: '' true ''、' '1.44" '、' "null" '? – RomanPerekhrest

+0

日付はdatetimeオブジェクトです。とにかく、この配列をクリアしたいだけです。価格が浮動小数点型または倍精度型の場合は、文字列ではなくdouble型または浮動小数点型として表示されます。 –

答えて

1

ありそのデータ型に基づいて配列要素を離れて解析することができますPHPの任意の実際の機能はイマイチ、まだあなたはそれらを変換入力し、各要素に文字を認識してによって、するpreg_matchパターンマッチング技術を使用して、それを行うことができます

アイデア: - foreachループを使用して各要素を取得し、preg_matchを適用してデータの種類を確認し、そのデータ型を設定してください:)

+0

今は素晴らしいアイデアのように聞こえます。この配列に1000個のアイテムがある場合はどうなりますか?パフォーマンスはどうですか?そしてもちろん私がこの機能を望むなら、私が推測する性能を無視すべきです。 –

+1

これを実装すると、パフォーマンスに影響するとは思えません。ログイン認可の間、暗号化ハッシュ世代のようなパフォーマンスの歪みがあります。** phpのセッションID **の動作を見たことがあります。 、あなたの問題はそれらに比べてそれほど多くありません。まだあなたの問題のために良い方法があるかもしれません.. – StackB00m