if ( !is_object( $user ) )
return $user;
- $new_user = $user->to_array();
- $new_user['roles'] = implode( ',', $user->roles );
+ $user->roles = implode( ',', $user->roles );
- return $new_user;
+ return $user;
} );
WP_CLI\Utils\format_items( $params['format'], $it, $fields );
$table->setHeaders( $fields );
foreach ( $items as $item ) {
- $table->addRow( array_values( array_pick( $item, $fields ) ) );
+ $table->addRow( array_values( pick_fields( $item, $fields ) ) );
}
$table->display();
case 'json':
$out = array();
foreach ( $items as $item ) {
- $out[] = array_pick( $item, $fields );
+ $out[] = pick_fields( $item, $fields );
}
echo json_encode( $out );
foreach ( $rows as $row ) {
if ( ! empty( $headers ) ) {
- $row = array_pick( $row, $headers );
+ $row = pick_fields( $row, $headers );
}
fputcsv( $fd, array_values( $row ) );
}
/**
- * Like array_slice(), but for associative arrays.
+ * Pick fields from an associative array or object.
+ *
+ * @param array|object Associative array or object to pick fields from
+ * @param array List of fields to pick
+ * @return array
*/
-function array_pick( $item, $fields ) {
- $item = (array) $item;
+function pick_fields( $item, $fields ) {
+ $item = (object) $item;
$values = array();
foreach ( $fields as $field ) {
- $values[ $field ] = isset( $item[ $field ] ) ? $item[ $field ] : null;
+ $values[ $field ] = isset( $item->$field ) ? $item->$field : null;
}
return $values;