人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: seadwell
●カテゴリ:ウェブ制作
✍キーワード:AAA 次元 配列
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● GEN111
●50ポイント
<?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) ;
?>
◎質問者からの返答

こんにちは、GEN111さん。

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

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

ありがとうございます。


2 ● y-kawaz
●50ポイント ベストアンサー

こんな感じでしょうかね。 '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] => そうでもないそうでもないそうで
 )
)
◎質問者からの返答

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ