我有以下数组。
$implodeArray = implode(',',$testArray);
array = array(12869438,12869439);
的必需输出我使用了以下代码。
Array to string conversion
它给了我警告
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:circle="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SampleActivity">
<com.example.logan.rotatingwheelcontrol.CircleLayout
android:id="@+id/circle_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/selected_textView"
android:layout_gravity="center_horizontal" >
<include layout="@layout/menu_items" />
</com.example.logan.rotatingwheelcontrol.CircleLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/circle_layout"
android:layout_alignLeft="@id/circle_layout"
android:layout_alignRight="@id/circle_layout"
android:layout_alignTop="@id/circle_layout">
<com.example.logan.rotatingwheelcontrol.CircleImageView
android:id="@+id/center_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/circle"
android:layout_centerInParent="true"
android:elevation="2dp"
android:src="@drawable/ic_cloud" />
</RelativeLayout>
<TextView
android:id="@+id/selected_textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="50dp"
android:textAppearance="?android:attr/textAppearanceLarge" />
我应该如何获得所需的输出数组?
答案 0 :(得分:1)
使用explode将字符串拆分为两部分并获得第二部分
$res = array_map(function($x) { return explode('_', $x)[1]; },
$arr['deselected_attachment_ids']);
print_r($res);
答案 1 :(得分:0)
您可以让preg_replace()
为您遍历数组并删除不需要的部分。虽然正则表达式并不以快速着称,但它是一种直接的单功能解决方案。
代码:(Demo)
$array=['deselected_attachment_ids'=>['16883477_12869438','16883478_12869439']];
$result=preg_replace('/^\d+_/','',$array['deselected_attachment_ids']);
var_export($result);
输出:
array (
0 => '12869438',
1 => '12869439',
)
或者您可以使用foreach
循环explode()
:( Demo)
$array=['deselected_attachment_ids'=>['16883477_12869438','16883478_12869439']];
foreach($array['deselected_attachment_ids'] as $v){
$result[]=explode('_',$v)[1];
}
var_export($result);
// same result
最后,如果您不想使用正则表达式,并且您不希望在每次迭代时生成临时数组(来自explode()
调用),则可以使用substr()
和strpos()
。
$array=['deselected_attachment_ids'=>['16883477_12869438','16883478_12869439']];
foreach($array['deselected_attachment_ids'] as $id){
$result[]=substr($id,strpos($id,'_')+1);
}
var_export($result);