PHP5でメチャメチャ苦手な配列の質問です。


$a = array(
[0] =>array([text01]=>'aaa', [text02]=>'00a', [data]=>'なんでだろうなんでだろうなんでだろうなんでだろうなんでだろう')
[1] =>array([text01]=>'bbb', [text02]=>'00b', [data]=>'そうでもないそうでもないそうでもないそうでもないそうでもないそうでもない')
);

上記、多次元配列の[data]の部分を短くしたいのですが、先頭から15文字とか可能でしょうか?

$a = array(
[0] =>array([text01]=>'aaa', [text02]=>'00a', [data]=>'なんでだろうなんでだろうなんで')
[1] =>array([text01]=>'bbb', [text02]=>'00b', [data]=>'そうでもないそうでもないそうで')
);

こんなカンジです。
mb_substrを使うのかな?と、foreachと組み合わせ試しますがうまく行きません。
よろしくお願いしますm(_ _)m

回答の条件
  • 1人2回まで
  • 登録:2007/10/27 08:12:26
  • 終了:2007/10/27 16:59:40

ベストアンサー

id:y-kawaz No.2

y-kawaz回答回数1420ベストアンサー獲得回数2252007/10/27 12:09:22

ポイント50pt

こんな感じでしょうかね。 'UTF-8' の部分は自分の環境に合わせて 'EUC-JP' とか 'Shift_JIS' とかに変えてください。

<?php
$a = array(
        array('text01'=>'aaa', 'text02'=>'00a', 'data'=>'なんでだろうなんでだろうなんでだろうなんでだろうなんでだろう'),
        array('text01'=>'bbb', 'text02'=>'00b', 'data'=>'そうでもないそうでもないそうでもないそうでもないそうでもないそうでもない')
);
foreach($a as $k => $v) {
        $a[$k]['data'] = "hoge";
        $a[$k]['data'] = mb_substr($v['data'], 0, 15, 'UTF-8');
}
print_r($a);
?>

↑の実行結果が↓

Array
(
    [0] => Array
        (
            [text01] => aaa
            [text02] => 00a
            [data] => なんでだろうなんでだろうなんで
        )
    [1] => Array
        (
            [text01] => bbb
            [text02] => 00b
            [data] => そうでもないそうでもないそうで
        )
)
id:seadwell

y-kawazさん、いつもありがとうございます。

メチャメチャ苦手な配列ですが、今回、何度となくお伺いしているうちになんとなくですが解って来たような気がします。

また、つまずいたときによろしくお願いします。

ありがとうございました。

2007/10/27 16:58:57

その他の回答(1件)

id:GEN111 No.1

GEN111回答回数472ベストアンサー獲得回数582007/10/27 08:50:08

ポイント50pt
<?php
$a = array(
  0 => array('text01' => 'aaa', 'text02' => '00a', 'data' => 'なんでだろうなんでだろうなんでだろうなんでだろうなんでだろう'),
  1 => array('text01' => 'bbb', 'text02' => '00b', 'data' =>'そうでもないそうでもないそうでもないそうでもないそうでもないそうでもない')
);

mb_internal_encoding('utf8') ; // 実際の文字セットに合わせて 'utf8' は変更してください。
foreach ($a as $k => $v) {
  $a[$k]['data'] = mb_substr($a[$k]['data'], 0, 15) ;
}

print_r($a) ;
?>
id:seadwell

こんにちは、GEN111さん。

自分で試したのは、近いところまで行ってたのですが、ちょっと違いました^^;

おまけにエンコードもしてませんでした。

ありがとうございます。

2007/10/27 16:54:20
id:y-kawaz No.2

y-kawaz回答回数1420ベストアンサー獲得回数2252007/10/27 12:09:22ここでベストアンサー

ポイント50pt

こんな感じでしょうかね。 'UTF-8' の部分は自分の環境に合わせて 'EUC-JP' とか 'Shift_JIS' とかに変えてください。

<?php
$a = array(
        array('text01'=>'aaa', 'text02'=>'00a', 'data'=>'なんでだろうなんでだろうなんでだろうなんでだろうなんでだろう'),
        array('text01'=>'bbb', 'text02'=>'00b', 'data'=>'そうでもないそうでもないそうでもないそうでもないそうでもないそうでもない')
);
foreach($a as $k => $v) {
        $a[$k]['data'] = "hoge";
        $a[$k]['data'] = mb_substr($v['data'], 0, 15, 'UTF-8');
}
print_r($a);
?>

↑の実行結果が↓

Array
(
    [0] => Array
        (
            [text01] => aaa
            [text02] => 00a
            [data] => なんでだろうなんでだろうなんで
        )
    [1] => Array
        (
            [text01] => bbb
            [text02] => 00b
            [data] => そうでもないそうでもないそうで
        )
)
id:seadwell

y-kawazさん、いつもありがとうございます。

メチャメチャ苦手な配列ですが、今回、何度となくお伺いしているうちになんとなくですが解って来たような気がします。

また、つまずいたときによろしくお願いします。

ありがとうございました。

2007/10/27 16:58:57

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません